public static void main(String[] args) throws InterruptedException {Thread thread = new Thread(new Runnable() {@Overridepublic void run() {try {//这里可以放一个变量看看是否是0,只有1和0两种状态,当为0时,才可以进行后续代码,如果为1,直接自己join自己等待别的线程把该变量原子性减一后再去interrupt它,这也是一种门栓的实现,或者说是一种阻塞的实现Thread.currentThread().join();} catch (InterruptedException e) {e.printStackTrace();//抓到异常后 可以在这里写后续代码}}});thread.start();thread.interrupt();//主线程去打断他,打断他之前要将那个原子性变量减一}

使用线程自己join自己完成线程门栓相关推荐

  1. 【多线程】线程的引入,创建线程的方式,设置线程名字、获取名字,线程优先级priority,加入休眠的方法,,后台线程,礼让线程,Join,中断线程,某电影院,共有100张票线程流程图,3售票窗口,

    多线程 1.线程的引入 进程: 正在运行的程序,是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和资源. 线程: 是进程的单个顺序控制流,或者说就是一个单独执行的路径 一个进程如果只 ...

  2. python线程的注意点(线程之间执行是无序的、主线程会等待所有的子线程执行结束再结束(守护主线程)、线程之间共享全局变量、线程之间共享全局变量数据出现错误问题(线程等待(join)、互斥锁))

    1. 线程的注意点介绍 线程之间执行是无序的 主线程会等待所有的子线程执行结束再结束 线程之间共享全局变量 线程之间共享全局变量数据出现错误问题 2. 线程之间执行是无序的 import thread ...

  3. Python | threading02 - 互斥锁解决多个线程之间随机调度,造成“线程不安全”的问题。

    文章目录 一.前言 二.线程不安全的现象 2.1.代码 2.2.运行 三.使用互斥锁解决线程不安全 3.1.代码 3.2.运行 四.忘记释放互斥锁,造成死锁 4.1.代码 4.2.运行 4.3.造成死 ...

  4. python线程异常中断_中断线程

    如果线程需要执行一个长时间任务,就可能需要能中断线程.中断线程就是其他线程给该线程发一个信号,该线程收到信号后结束执行run()方法,使得自身线程能立刻结束运行. 我们举个栗子:假设从网络下载一个10 ...

  5. C++:多线程中的小白(2)线程启动、结束、创建线程、join、detach

    目录 一.范例演示:线程运行的开始和结束 二.其他创建线程的手法 一.范例演示:线程运行的开始和结束 (1)thrad (2)join()函数 (3)detach()函数 (4)joinable()函 ...

  6. python 守护线程 join_Python多线程threading join和守护线程setDeamon原理详解

    同一进程下的多个线程共享内存数据,多个线程之间没有主次关系,相互之间可以操作:cpu执行的都是线程,默认程序会开一个主线程:进程是程序以及和程序相关资源的集合:某些场景下我们可以使用多线程来达到提高程 ...

  7. java进阶 线程池 join用法总结:thread4.join();方法,就表明thread4.join();这个线程受到贵客待遇,直到这个线程执行完,被插入这个方法的载体线程才可以执行。

    那个线程调用join 举例 thread4.join();方法,就表明thread4.join();这个线程受到贵客待遇,直到这个线程执行完,被插入这个方法的载体线程才可以执行. package ja ...

  8. java 线程方法join的简单总结

    虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结. 一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间 ...

  9. 线程安全、守护线程、join()

    1. 线程安全 多个线程在访问同一个对象的时候不需要其他额外的同步手段或措施就能保证该对象被正确的访问并产生正确的执行结果.那么这个对象就是线程安全的. 线程安全的代码必须具备一个特征:代码本身封装了 ...

最新文章

  1. 面试官不会告诉你的16问 Java基础面试题
  2. Raspberry Zero 上实现平滑视频图传
  3. Debian/linux 安装配置ftp服务器
  4. python中print用法
  5. 字节输出流的续写和换行
  6. 网上看到的一个百度实习生笔试题
  7. 这就是数据分析之Pandas与数据清洗
  8. Hyperledger Fabric学习笔记(四)- fabric单机部署 solo 版
  9. 发送需要smtp认证的邮件
  10. 从零开始搭建一个自己的脚手架
  11. 介绍requests+threading多线程爬虫,提取采用xpath 和正则两种,介绍线程锁
  12. linux中添加一行,linux – sed:在某个位置插入一行
  13. Spring Cloud Gateway 动态路由管理,一点都不吹,应该没有比这更好的管理系统了吧
  14. FRM-91500: Unable to start/complete the build.
  15. BH1750的一些使用心得(STM32,内置工程)
  16. win10系统 开启蓝牙服务器,win10系统蓝牙在哪开启?
  17. 优秀简历只需一篇就能打天下
  18. OLAP和OLTP比较
  19. 精准营销中的价值与实现—银行案例
  20. 掌握可视化设计流程这4步就够了

热门文章

  1. 苹果开发账号过期不续费会怎样?
  2. How to create a jump server in AWS VPC
  3. thinkphp 第二节
  4. Listview中使用线程实现无限加载更多项目的功能
  5. [当人工智能遇上安全] 7.基于机器学习的安全数据集总结
  6. P1305 新二叉树
  7. 2019第十届蓝桥杯C/C++ A组省赛 —— 第四题:迷宫
  8. 2015年第六届蓝桥杯C/C++ A组国赛 —— 第一题:方格填数
  9. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1065:奇数求和
  10. Java中集合(六)Queue