多线程

来源:互联网 发布:企业信用基础数据库 编辑:程序博客网 时间:2024/06/14 17:29

进程是一种“自包容”的运行程序,由操作系统直接管理,直接运行,有自己的地址空间,每个进程一开启都会消耗内存;
线程是进程内部单一的顺序控制流。一个进程拥有多个线程,多个线程共享一个进程的内存空间;

主线程:main方法一执行,就会开启主线程;
主线程的特点:
1、最先开始
2、最后结束
3、产生其他子线程
4、回收资源

Thread中start()方法和run()的区别
start()方法是启动线程的方法,会在主线程基础上开启一个子线程,两个线程同时执行,线程启动后会调用run();
如果直接调用run(),不会在主线程之外创建新线程,是普通方法的调用;


线程执行:
新建   new
就绪  start启动
运行  执行run (wait等待、sleep睡眠、yield挂起【线程显示出让cpu控制权】、阻塞【等待IO事件输入】)
死亡   run执行完毕


线程优先级:当两个或两个以上的线程同时处于就绪状态,优先级高的线程会先得到cpu的执行权;优先级一共分为10级,数字越大,优先级越高;


线程同步(线程安全):
当两个或两个以上的线程同时访问同一个对象时,为了避免数据混乱,同一时间只允许一个线程进行访问,另外的线程进行等待;

同步带来的后果:
1、数据安全;
2、效率低下;

同步实现的方式:同步方法和同步块    synchronized

 

0 0
原创粉丝点击