
并发编程
laimao8079
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java线程的生命周期
通用的线程生命周期初始状态、可运行状态、运行状态、休眠状态和终止状态。1.初始状态,指的是线程已经被创建,但是还不允许分配 CPU 执行。这个状态属于编程语言特有的,不过这里所谓的被创建,仅仅是在编程语言层面被创建,而在操作系统层面,真正的线程还没有创建。2.可运行状态,指的是线程可以分配 CPU 执行。在这种状态下,真正的操作系统线程已经被成功创建了,所以可以分配 CPU 执行。当有...原创 2020-04-29 14:04:08 · 154 阅读 · 0 评论 -
安全性、活跃性以及性能问题
安全性、活跃性以及性能问题安全性问题那什么是线程安全呢?其实本质上就是正确性,而正确性的含义就是程序按照我们期望的执行,不要让我们感到意外。存在共享数据并且该数据会发生变化,通俗地讲就是有多个线程会同时读写同一数据。public class Test { private static long count = 0; static void add10K() {...原创 2020-04-24 17:35:09 · 374 阅读 · 0 评论 -
linux拆分文件
因为要查看一个日志文件,内容文件不好查找,所以只能拆分文件split支持自定义输出文件大小和输出文件行数两种模式split命令格式如下:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]命令参数-a, --suffix-length=...原创 2020-04-23 10:57:46 · 1576 阅读 · 1 评论 -
死锁
死锁的一个比较专业的定义是:一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。如何预防死锁并发程序一旦死锁,一般没有特别好的方法,很多时候我们只能重启应用。因此,解决死锁问题最好的办法还是规避死锁。那如何避免死锁呢?要避免死锁就需要分析死锁发生的条件,有个叫 Coffman 的牛人早就总结过了,只有以下这四个条件都发生时才会出现死锁:1.互斥,共享资源 X 和 Y 只能被一个线程占...原创 2020-04-22 19:11:09 · 175 阅读 · 0 评论 -
互斥锁(上):解决原子性问题
那原子性问题到底该如何解决呢?原子性问题的源头是线程切换,“同一时刻只有一个线程执行”这个条件非常重要,我们称之为互斥。如果我们能够保证对共享变量的修改是互斥的,那么,无论是单核 CPU 还是多核 CPU,就都能保证原子性了。Java 语言提供的锁技术:synchronizedclass X { // 修饰非静态方法 synchronized void foo() { ...原创 2020-04-21 19:24:50 · 222 阅读 · 0 评论