算法分享系列No.10--使用【多线程】交替打印数字问题 & 【死锁】代码实现案例

使用多线程--交替打印数字问题(完整代码+输出打印)很多大厂会问这种实际类型的问题,如果在实际应用中用的较少,基本很难写出来,代码较基础,但是如果在面试中,那种环境下一旦写出来是很加分项。一、使用多线程--交替打印数字问题1、main函数创建两个线程,并进行启动2、多线程具体实现打印内容3、输出结果显示如下:二、死锁代码实现案例死锁的具体案例代码实现打印内容如下【造成死锁】:三、解除上面死锁的方法完整代码如下:解开死锁后的输出内容(这样就不会造成死锁)
摘要由CSDN通过智能技术生成

遇到一个问题,最主要的是能把这个问题,进行转换,转换成我们熟悉的问题。

很多大厂会问这种实际类型的问题,如果在实际应用中用的较少,基本很难写出来,代码较基础,但是如果在面试中,那种环境下一旦写出来是很加分项。

在代码中会经常运用到多线程,多线程的实现问题,以及触发死锁的具体代码实现。

目录

一、使用多线程--交替打印数字问题

1、main函数创建两个线程,并进行启动

2、多线程具体实现打印内容

3、输出结果显示如下:

二、死锁代码实现案例

死锁的具体案例代码实现

打印内容如下【造成死锁】:

三、解除上面死锁的方法 

完整代码如下:

解开死锁后的输出内容(这样就不会造成死锁)

一、使用多线程--交替打印数字问题

1、main函数创建两个线程,并进行启动

public class Test{

    public static void main(String[] args){
       
         Number number = new Number();
         Thread thread1 = new Thread(number);
         Thread thread2 = new Thread(number);
         thread1.setName("线程【1】");
         thread2.setName("线程【2】");
         thread1.start();
         thread2.start();
    }
}

2、多线程具体实现打印内容

class Number implements Runnable{

    private int number = 1;

    @Override
    public void run(){
         while(true){
            synchronized(this){
                this.notify();
                 if(number<=10){
                     try{
                        Thread.sleep(100);
                     }catch(InterruptedException e){
                        e.printStackTrace();
                     }
                     System.out.println("线程名称"+Thread.currentThread().getName()+",number="+number);
                     number++;
                     try{
                        this.wait();
                     }catch(InterruptedException e){
                        e.printStackTrace();
                     }
                 }
            }
         }
    }
}

3、输出结果显示如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值