摘要:
两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。这两大问题,管程都是能够解决的。Java SDK 并发包通过 Lock 和 Condition 两个接口来实现管程,其中 Lock 用于解决互斥问题,Condition 用于解决同步问题。 Jav 阅读全文
摘要:
如果在设计的时候就按照单线程的思想进行设计,敲出的代码可能上线之后就会有很多问题,如何利用思想设计出符合线程安全的代码呢? 理论上面向对象编程和并发编程是没有关系的,但是面向对象编程可以更好的提升设计并发时候的逻辑 可以从三个角度上去思考,封装共享变量,识别共享变量之间的约束条件,制定并发访问策略。 阅读全文
摘要:
通用的线程生命周期基本上可以用下图这个“五态模型”来描述。这五态分别是:初始状态、可运行状态、运行状态、休眠状态和终止状态。 初始状态,指的是线程已经被创建,但是还不允许分配 CPU 执行。这个状态属于编程语言特有的,不过这里所谓的被创建,仅仅是在编程语言层面被创建,而在操作系统层面,真正的线程还没 阅读全文