一、当天完成的任务
今天先没写最后的总结,开始看了一下线程,总觉得单线程使用起来很不利于以后的工作。
今天的线程测试代码:
/** * @author: xianzhixianzhixian * @date: 2019-01-07 21:34 */ public class ThreadB extends Thread { @Override synchronized public void run() { try { System.out.println("begin B ThreadName="+ Thread.currentThread().getName()+" " +System.currentTimeMillis()); Thread.sleep(5000); System.out.println("end B ThreadName="+ Thread.currentThread().getName()+" " +System.currentTimeMillis()); } catch (Exception e) { e.printStackTrace(); } } }
/** * @author: xianzhixianzhixian * @date: 2019-01-07 21:34 */ public class ThreadB extends Thread { @Override synchronized public void run() { try { System.out.println("begin B ThreadName="+ Thread.currentThread().getName()+" " +System.currentTimeMillis()); Thread.sleep(5000); System.out.println("end B ThreadName="+ Thread.currentThread().getName()+" " +System.currentTimeMillis()); } catch (Exception e) { e.printStackTrace(); } } }
/** * 方法join()后面的代码提前运行示例(有时会出现这种情况) * 这里涉及到join(long)和a、b线程争抢对象锁的问题 * @author: xianzhixianzhixian * @date: 2019-01-07 21:38 */ public class Run { public static void main(String[] args) { try { ThreadB b = new ThreadB(); ThreadA a = new ThreadA(b); a.start(); b.start(); b.join(2000); System.out.println("main end "+System.currentTimeMillis()); } catch (Exception e) { e.printStackTrace(); } } }
二、第二天的计划
真的要开始写报告了,繁忙的任务也就结束了
三、每日小结
①代码部分,A线程运行完之后main中的语句执行完毕,B线程继续执行完毕或者A线程运行完之后,B线程继续执行完毕,main中的语句执行完毕
②之前登录功能那里还在用线程,当时就有点不清楚,今天终于有时间看了,当时好像都没加锁。