1.线程阻塞
上面是其他博客截图的一些线程等待,回调等等知识
2.线程的启动
1)new Thread().start();
2)new Thread(new Runnable()).start();
线程内容写在run方法里面
3.线程安全
如果每个线程拥有的东西是不可见的,其他线程是不能拿到的,是线程安全的。所以可以把调用的东西初始化定义在run方法里面,也就是说把这东西变成局域变量。
还可以用锁,同步锁,synchrnoized,然而这个还不是安全的,可能导致死锁。下次附上避免死锁的线程方法
4.还有笔试关于StringBuilder,StringBuffer线程安全的问题
StringBuilder是线程不安全的,StringBuffer是线程安全的。因为StringBuffer很多方法可以用sychronized同步锁。
StringBuffer,StringBuilder,String执行速度:StringBuilder>StringBuffer>String,因为String每次都会创建一个新的对象。
操作少数据的时候用String
单线程操作多量数据的用StringBuilder
多线程操作多数量的用StringBuffer