初学线程强制执行

Posted 做个机灵鬼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学线程强制执行相关的知识,希望对你有一定的参考价值。

多个线程同时运行的时候我们可以指定一某个线程,让这个线程优先执行,也就是其他的线程让出CPU资源,直到指定的线程执行完毕,其他线程恢复正常工作。强制执行的方法就是join(),join()方法存在方法重载,这里说明一下:

//线程强制执行,相当于插队
public class TextJoin implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 300; i++) {
            System.out.println("线程vip来了"+i);
        }
    }

    public static void main(String[] args) throws InterruptedException {
        //启动主线程
        TextJoin textJoin = new TextJoin();
       Thread thread = new Thread(textJoin );
       thread.start();
       //主线程
        for (int i = 0; i < 500; i++) {
            if(i==200){
               thread.join();//模拟插队,并抛出异常
            }
            System.out.println("main"+i);
        }


    }
}

运行结果:
在这里插入图片描述
主线程运行到200的执行时候,强制执行另外一个线程

以上是关于初学线程强制执行的主要内容,如果未能解决你的问题,请参考以下文章

多线程 Thread 线程同步 synchronized

初学Node事件循环

如何在x86上使用gcc强制执行内存排序

c#初学-多线程中lock用法的经典实例

在 XCTest 中:如何测试函数是不是强制执行到主线程

多个用户访问同一段代码