Advertisement

多种方法实现打印1到n之间的数字(Java面试题)

阅读量:

Summary

实现方法:

  1. 易变 2. 同步控制 3. 等待并通知所有阻塞线程 4. 重入锁 5. 线程锁支持接口 6. 信号灯机制

方法1

方法1

方法2

  • 除了这几种方法外,还有管道、FIFO(同步队列)等实现方式,此略。

注释表明该核心问题是并发控制的核心问题。
从而采用了线程通信作为并行处理方案。
其中并行通信主要分为两类机制:一种是共享内存机制(即同步访问),另一种是消息传递机制(包括异步消息传输)。
其中消息传递机制通常可以通过同步通道或事件驱动的方式进行间接模拟(非严格模拟)。
即 JAVA 的并行处理采用了隐式的共享内存模型。
在这一框架下,在发起了同步请求时会触发事件广播(虽然并非严格的同步),随后接收方会根据事件类型决定响应方式。

为了避免冗长,在本篇文章中我们仅列出核心代码片段,并附上完整代码及其相关细节,请参考:@gist 以及 @码云


1. volatile

需要注意的是,在C语言中volatile类型不具备原子性(例如:$a+

全部评论 (0)

还没有任何评论哟~