1.
2.从block进入runable需要获取monitor锁;从waiting状态到runnable需要执行lockSupport.unpark()或者join的线程运行结束或者被中断时才可以进入runnable状态;对于timed waiting而言,它存在超时机制
3.通过callable、future这几个类来确定线程返回的结果。callable只能在ExecutorService的线程池中跑,但有返回结果,也可以通过future对象查询执行状态
4.
//线程池 ExecutorService threadpoorl= Executors.newFixedThreadPool(5); try{ }catch (Exception e){ }finally { //不会立马关闭,会等待执行完之后才关闭 threadpoorl.shutdown(); } 5..execute和submit的区别 //execute runnable //submit callable //异常的区别 //execute会在子线程中抛出异常,在主线程捕捉不到 //submit不会立马抛出异常,而是会储存起来,直到调用get的时候才会出来
6.