Java如何实现两个线程交替运行
时间:2018-09-13
本文章向大家介绍Java如何实现两个线程交替运行,需要的朋友可以参考一下
本文旨在两个线程交替运行,不多哔哔直接看代码吧
public class Work2 { static final Object object = new Object(); public static void main(String[] args) { Thread t1 = new Thread(new Runnable() { @Override public void run() { synchronized (object) { for (int i = 1; i < 10; i += 2) { System.out.println(Thread.currentThread().getName() + " " + i); object.notify(); try { object.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }, "t1"); Thread t2 = new Thread(new Runnable() { @Override public void run() { synchronized (object) { for (int i = 2; i < 10; i += 2) { System.out.println(Thread.currentThread().getName() + " " + i); object.notify(); try { object.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }, "t2"); t1.start(); t2.start(); } }
该实现的原理也非常简单,定义一个对象,因为一个对象有且只有一个锁,所以让两个线程循环让此对象解锁->加锁,从而达到线程交替运行的目的;
个人觉得此方法还不够好,后续总结了再继续补充,还望看到的大佬们多指点指点!
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件
- C++核心准则SF.6:(只)为转换,基础库或在局部作用域内部使用using namspace指令
- C++核心准则SF.7:不要在头文件中的全局作用域中使用using namespace指令
- 二叉树:看看这些树的最小深度
- Hive初体验
- Hive数据的存储以及在centos7下进行Mysql的安装
- 一个改进的数学学习工具
- 配置hive的元数据到Mysql中
- 二叉树:我有多少个节点?
- POST请求和GET请求如何传递和接收解析参数
- 二叉树:我平衡么?
- 机器学习中的常用编码方式(二)
- 个人Next主题配置文件
- 数组中出现次数超过一半的数字
- 二叉树:找我的所有路径?