接受線程ide
/** * description: * * @author: dawn.he QQ: 905845006 * @email: dawn.he@cloudwise.com * @email: 905845006@qq.com * @date: 2019/12/5 12:55 AM */ public class DataHandler { // 數據副本 private String mData; public DataHandler() { initSwithThread(); } /** * 發送數據,供外部調用 * @param data */ public void sendData(String data) { // 拷貝數據 mData = data; } private void initSwithThread() { new Thread(new Runnable() { @Override public void run() { while(true) { if(null != mData && mData.length() > 0) { System.out.println("process data, run in thread : " + Thread.currentThread().getName() + ", data = " + mData); // 數據發送後,清除數據副本mData mData = null; } // 爲了可以清晰看清結果這裏讓thread休眠1s try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }, "ThreadB").start(); } }
發送線程線程
/** * description: * * @author: dawn.he QQ: 905845006 * @email: dawn.he@cloudwise.com * @email: 905845006@qq.com * @date: 2019/12/5 12:55 AM */ public class ThreadTest { public static DataHandler mHandler; public static void main(String[] args) { mHandler = new DataHandler(); Thread threadA = new Thread(new Runnable() { @Override public void run() { // 線程A中發送數據 String data = "hello code 9527"; System.out.println("send data, run in thread : " + Thread.currentThread().getName() + ", data = " + data); // 經過DataHandler將數據拷貝到線程B中處理 mHandler.sendData(data); } }, "threadA"); threadA.start(); } }