InheritableThreadLocal

线程间通信

北战南征 提交于 2019-12-09 20:00:20
1.轮询机制 通过不断访问共享对象的状态,来判断是否满足了线程执行要求 定义操作类MyObject,内部有一个volatile关键字修饰的list成员变量,使用volatile主要是为了让操作类对象的改变可以让每个线程都能感应到。代码如下: package com.feng.example; import java.util.ArrayList; import java.util.List; public class MyObject { //此处必须是volatile,否则线程B中的object感应不到线程A中的object的变化 volatile private List<String> list = new ArrayList<String>(); public void add() { list.add("hahaha"); } public int size(){ //System.out.println("hahah"); return list.size(); } } 定义两个线程类MyThreadA 用于向MyObject对象中添加数据,MyThreadB用于在list中存在大于等于五个元素时退出 代码如下: package com.feng.example; public class MyThreadA extends Thread{ private