2019.9.9课程设计报告

一、当天完成的任务

   今天先没写最后的总结,开始看了一下线程,总觉得单线程使用起来很不利于以后的工作。

   今天的线程测试代码:

/**
 * @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中的语句执行完毕

    ②之前登录功能那里还在用线程,当时就有点不清楚,今天终于有时间看了,当时好像都没加锁。

猜你喜欢

转载自www.cnblogs.com/RecKono/p/11492629.html
今日推荐