进程和线程区别及通信方式总结-Java 基础

进程:资源分配的基本单位,切换耗费资源多,操作系统含多个进程,进程含多个线程。分配不同内存空间。

线程:调度执行的基本单位,切换快速,共享地址空间,通信方便。资源利用率好,需要考虑互斥与同步;同一类线程共享代码和数据空间,但是有独立运行栈和程序计数器。不给分配空间,除了cpu,共享资源。

通信方式

1、线程共享地址

1)锁机制,互斥锁(排他,防止并发修改)、条件变量(以原子方式阻塞进程,直到满足条件为止,与互斥锁共用)、读写锁(多个线程同时读共享数据,写操作互斥);

2)信号量机制semaphore,无名信号量和命名信号量;

3)信号机制signal,计数器,控制共享资源的同步。

线程通信主要用于线程同步,无数据交换机制

2、进程通信:

1)管道pipe,半双工,数据单向流动,只能在父子进程之间,会发生阻塞,存满则写阻塞,写会读阻塞;

2)有名管道namedpipe,半双工,允许非父子通信;

3)信号量semophore,计数器,控制多个进程共享资源,作为锁,同一进程内不同线程之间同步。

4)消息队列messagequeue,消息链表,存放在内核由消息队列标识符标识,克服信号传递信息少,管道只承载吴格式字节流等。

5)信号sinal,通知接收进程,某个事件已发生。

6)共享内存sharememory,映射一段能在其他进程访问的内存,多个进程共享。

7)套接字socket,不同设备及其间的进程通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋葱ycy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值