|
本帖最后由 爱快技术支持05 于 2020-1-2 18:08 编辑
通信方式:
1.同步
a.同步是指多个线程之间通过synchronize关键字这种方式来实现线程间的通讯。
b.这种方式本质上就是共享内存式的通讯。多个线程需要访问同一个共享变量,谁拿到了锁(获得了访问权限),谁就可以执行。
2.while轮询的方式
a.这种方式比较浪费资源,是因为JVM將调度器交给轮询线程执行时,它只是在不断地测试某个条件是否成立。
b.线程都是先把变量读取到本地线程栈空间,然后再去修改本地变量。另一线程每次都在取本地的条件变量,可能造成死循环。
3.wait/notify机制
a.调用wait()放弃CPU,并进入阻塞状态。调用notify(),唤醒其他线程。
b.这种方式的好处是CPU的利用率提高了。
4.管道通讯
使用java.io.PipedInputStream 和 java.io.PipedOutputStream进行通信。
分布式系统中说的两种通信机制:共享内存机制和消息通信机制。前面的synchronized关键字和while轮询 “属于” 共享内存机制,
由于是轮询的条件使用了volatile关键字修饰时,这就表示它们通过判断这个“共享的条件变量“是否改变了,来实现进程间的交流。
而管道通信,更像消息传递机制,也就是说:通过管道,将一个线程中的消息发送给另一个。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|