b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Java多线程编程(三)线程的优先级、同步与死锁

电脑杂谈  发布时间:2019-08-12 23:05:11  来源:网络整理

死锁避免_多线程如何避免死锁_线程死锁 解决

线程的优先级:

线程的优先级分为三种多线程如何避免死锁,分别是:

1-MIN_PRIORITY

10-MAX_PRIORITY

5-NORM_PRIORITY

因为怎么都不设置默认值是5

线程的优先级可以影响线程的执行顺序,其实这里指的是有可能影响多线程如何避免死锁,不会一定影响。在默认状况下(比如说主线程)它的默认值是5

详细源码演示:

packagecom.yeqc.thread;

classThRunimplementsRunnable{

@Override

publicvoidrun(){

try{

Thread.sleep(1000);

System.out.println(Thread.currentThread().getName()+":"+i);

}catch(InterruptedExceptione){

e.printStackTrace();

}

}

publicclassThreadDemo03{

死锁避免_多线程如何避免死锁_线程死锁 解决

publicstaticvoidmain(String[]args){

Threadt1=newThread(newThRun(),"A");

Threadt2=newThread(newThRun(),"B");

Threadt3=newThread(newThRun(),"C");

t1.setPriority(Thread.MIN_PRIORITY);

t2.setPriority(Thread.NORM_PRIORITY);

t3.setPriority(Thread.MAX_PRIORITY);

t1.start();

t2.start();

t3.start();

运行结果:

同步与死锁:

1.同步代码

在代码块上加上“synchronized”关键字,则此源码块就称为同步代码块

2.同步代码块格式:

sychronized(同步对象){

需要同步的代码块;

3.同步方式

除了代码块可以同步,原理也有可以同步的

4.方法同步格式:

死锁避免_多线程如何避免死锁_线程死锁 解决

sychronizedvoid方法名称(){}

详细源码演示:

1.同步代码块方式:

packagecom.yeqc.thread;

classMythreadDemoimplementsRunnable{

@Override

publicvoidrun(){

for(inti=0;i<10;i++){

synchronized(this){

if(ticket>){

try{

Thread.sleep(500);

}catch(InterruptedExceptione){

e.printStackTrace();

}

System.out.println("车票:"+ticket--);

}

}

}

publicclassThreadDemo04{

死锁避免_多线程如何避免死锁_线程死锁 解决

publicstaticvoidmain(String[]args){

MythreadDemom=newMythreadDemo();

Threadt1=newThread(m);

Threadt2=newThread(m);

Threadt3=newThread(m);

t1.start();

t2.start();

t3.start();

运行结果:

2.同步方式

packagecom.yeqc.thread;

classMythreadDemoimplementsRunnable{

@Override

publicvoidrun(){

for(inti=0;i<10;i++){

tell();

}

publicsynchronizedvoidtell(){

if(ticket>){

try{

死锁避免_线程死锁 解决_多线程如何避免死锁

Thread.sleep(500);

}catch(InterruptedExceptione){

e.printStackTrace();

}

System.out.println("车票:"+ticket--);

}

publicclassThreadDemo04{

publicstaticvoidmain(String[]args){

MythreadDemom=newMythreadDemo();

Threadt1=newThread(m);

Threadt2=newThread(m);

Threadt3=newThread(m);

t1.start();

t2.start();

t3.start();

运行结果:

/**

*死锁:同学找工作(高新)

*公司需要你有工作经验(经验)

*/


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-119022-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...