Java基础多线程编程

Caroline ·
更新时间:2024-09-21
· 882 次阅读

  多线程编程   1.多进程:等同于多任务,一个进程是一个独立执行的程序,在内存里独立划分一个空间,多进程不是意义上的同时,而是CPU在进程间来回的切换   2.线程是进程内部独立执行的流程,一个进程的所有线程共享一个内存空间,CPU在线程之间来回的切换,CPu在线程之间切换的消耗远远小于在进程之间的切换消耗,线程是小的处理单位   关键字:Thread   3.线程的实现:   (1)第一种方式:   只需继承Thread类,并重写run方法(相当于主线程的main方法),在main方法中调用start方法才能开启多线程,再由start方法自动调用run方法,直接调用run方法虽然没有报错,但是没有开启多线程,只相当于普通方法的调用   (2)第二种方式:   继承Runnable接口,把接口对象传入到线程对象Thread中去,再调用Thread线程的start方法   4.线程的声明周期————线程的状态   (1)新建状态:new出Thread对象   (2)绪:start启动,在start运行run方法前   (3)运行状态:开始执行run方法   (4)死亡状态:run方法执行结束   (5)中断状态:这个方法时CPU在执行的过程中,线程中断的状态   A.因为优先级的原因未抢到CPU内存,处于中断的状态   线程的优先级:setPriority设置优先级,高为10,低为1,默认为5   Thread.MAX_PRIORITY(高),MIN__PRIORITY(低),NORM_PRIORITY(默认):优先级高只是被CPU青睐,执行几率高,并不是每次都将优先级高的执行完再执行优先级低的   B.阻塞:线程在执行输入输出事件时,因等待而造成的   C.休眠:调用Sleep方法,传入毫秒数进去,时间到了结束休眠   D.等待、唤醒:Object中wait 、notify,notifyAll方法,notify方法有先后,第一个执行wait的方法被唤醒   E.挂起yield,强制让某个线程退出CPU执行   当多个线程同时访问同一个资源的时候才会发生线程安全性问题,解决线程安全问题,只需在资源上加同步锁,加了同步锁之后,第一个线程执行完后,第二个才能执行,安全性高效率低,安全性低效率高,但不是多线程都要用安全线程   同步锁关键字synchronized(类型){方法   死锁:当两个及两个以上线程同步访问一对循环依赖资源的时候,有可能发生死锁   用线程间的通信解决死锁问题,wait,notify,只能够写在同步方法或者同步块中。}



多线程编程 JAVA 多线程 java基础 线程

需要 登录 后方可回复, 如果你还没有账号请 注册新账号