1.线程安全的集合类
在Java中,一些线程安全的集合类有Stack、Vector、Properties、Hashtable等
2.线程池中execute和submit的区别
1)参数及返回值不同
excute只能提交Runnable,无返回值
submit既可以提交Runnable,返回值为null,也可以提交Callable,返回值Future
2)异常抛出不同
execute执行任务时遇到异常会直接抛出
submit执行任务是遇到异常不会直接抛出,只有在使用Future的get方法获取返回值时才会抛出异常
3.线程池创建的方式
ExecutorService threadPool1 = Executors.newFixedThreadPool(5); //5个窗口
ExecutorService threadPool2 = Executors.newSingleThreadExecutor(); //一个窗口
ExecutorService threadPool3 = Executors.newCachedThreadPool();
//表示延迟一秒,后执行3秒
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
log.info("delay 1 seconds, and excute every 3 seconds");
}