1、 思考题

a、sleep和wait的差异    答:1)最次要是sleep办法没有开释锁,而wait办法开释了锁,使得其余线程能够应用同步控制块或者办法(锁代码块和办法锁)。         2)wait是Object办法,sleep是Thread特有的办法b、为什么说线程启动后不肯定会立即执行    答:须要期待CPU的调度,如果CPU没有闲暇内核,那线程将期待执行。c、应用wait和notify的时候 须要有做些什么    答:必须在同步办法中应用wait和notify,因为执行wait和notify的前提条件是必须持有同步办法的monitor的所有权,运行上面任何一个办法都会抛出非法monitor状态异样IllegalMonitorStateException

2、线程有哪些办法

    1)currentThread 获取以后线程    2)isAlive 是否存活    3)sleep 暂停以后线程执行    4)getId 获取以后线程的惟一标识    5)interrupt 终止以后线程执行    6)this.interrupted 判断以后线程是否中断,具备分明中断状态的作用    7)this.isInterrupted 判断Thread线程是否中断     8)suspend/resume 暂停和复原线程    8)yield 放弃以后cpu资源,将它让给其余工作    9)setPriority 设置线程执行的优先级 1-10    10)join 办法只会使主线程(或者说调用t.join()的线程)进入期待池并期待t线程执行结束后才会被唤醒。并不影响同一时刻处在运行状态的其余线程。

3、线程的状态转换

4、课后作业

1、给一个文件文件外面有10万条记录每一行是一个0-100000之间的随机数  咱们通过启动一个线程 来统计下这个文件外面大于 80000 数字有多少个。 并统计下耗时    
public static void main(String[] args) {        List<Integer> data = getData();        Thread t1 = new Thread(new Runnable(){            @Override            public void run() {                System.out.println("开始统计......");                long start= System.currentTimeMillis();                Integer count = 0;                for (Integer item : data) {                    if (item >= 80000) {                        count ++;                    }                }                long end =System.currentTimeMillis();                System.out.println("统计完结,耗时:" + (end-start) + "毫秒");                System.out.println("统计后果count=" +count);            }        });        t1.start();    }        /**     * 获取 10万个0-100000之间的随机数     * @author yy.xiong     **/    private static List<Integer> getData(){        Integer min = 0;        Integer max = 100000;        List<Integer> data = Lists.newArrayList();        for (int i=1; i<=100000; i++){            int item =  (int)(min+Math.random()*max);            data.add(item);        }        return data;    }    // 执行后果:    开始统计......    统计完结,耗时:5毫秒    统计后果count=20056    Process finished with exit code 0

2、用wait和notify 的例子 启动两个线程 :1号线程 打印【 步骤1】 而后进入期待 期待完结打印 【步骤4】 2 号线程打印【 步骤2】 而后sleep 3秒 而后打印【 步骤3】而后唤醒1号线程