Java入门第150课 | 您所在的位置:网站首页 › socket安全吗 › Java入门第150课 |
1. 多线程基础
1.1 线程同步
1.1.1 线程安全API与非线程安全API
StringBuffer 是同步的 synchronized append0; ·StringBuilder 不是同步的 append(); Vector和 Hashtable 是同步的 ArrayList和HashMap 不是同步的 获取线程安全的集合方式 - Collections.synchronizedList() 获取线程安全的List集合 - CollectionssynchronizedMap() 获取线程安全的Map 1.1.2 使用ExecutorService实现线程池ExecutorService是java提供的用于管理线程池的类 线程池有两个主要作用: - 控制线程数量 - 重用线程 当一个程序中若创建大量线程,并在任务结束后销毁会给系统带来过度消耗资源,以及过度切换线程的危险从而可能导致系统崩溃。为此我们应使用线程池来解决这个问题。 使用ExecutorService实现线程池(续1)线程池的概念:首先创建一些线程,它们的集合称为线程池,当服务器接受到一个客户请求后,就从线程池中取出一个空闲的线程为之服务,服务完后不关闭该线程而是将该线程还回到线程池中。 在线程池的编程模式下,任务是提交给整个线程池,而不是直接交给某个线程,线程池在拿到任务后,它就在内部找有无空闲的线程,再把任务交给内部某个空闲的线程, 一个线程同时只能执行一个任务,但可以同时向一个线程池提交多个任务 使用ExecutorService实现线程池(续2)线程池有以下几种实现策略 -Exe |
CopyRight 2018-2019 实验室设备网 版权所有 |