Java多线程

 1、进程

程序(任务)的执行过程。----动态
持有资源(共享内存,共享文件)和线程---载体

       线程

最小的执行单元
同一进程中有多个线程
线程共享进程资源

线程交互:同步、互斥

进程交互:

1、管道:管道是一种半双工的方式,数据只能单向流动,而且只能在具有亲缘关系的进程使用。进程的亲缘关系是指父子关系。
2、有名管道:是一种半双工的方式,允许无亲缘关系的进程间的通信
3、信号量:信号量是一个计数器,可以用来控制多个进程对共享资源的访问,它常作为一种锁机制,防止某个进程正在访问共享内存时,其他进程访问该资源。因此,主要作为进程间以及同以进程内不同线程间的通信方式。
4、消息队列:是由消息的链表,存放在内核中并由消息队列标识符标识,消息队列克服了信号传递消息少,管道智能承载无格式字节流以及缓冲区大小受限等缺点
5、信号:一种比较复杂的通信方式,用于通知接收进程某个事件已发生
6、共享内存:映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问,他往往与其他通信机制,如信号量配合使用,来实现进程间的同步和通信
7、套接字:他用于不同主机间的进程通信

2、线程常用方法--Thread.class和Runnable接口

public void run()



3、正确停止线程方法

使用退出标志:boolean变量  而不是使用stop()方法




interrupt()方法:如果线程在调用 Object 类的 wait()wait(long) 或 wait(long, int) 方法,或者该类的join()join(long)join(long, int)sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个 InterruptedException

4、多线程的交互

当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为争用条件。
互斥:同一时间只能有一个线程对临界资源操作。synchronize
同步:通信机制 wait() notify() notifyAll()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值