摘要:
线程池中的几个重要概念: 1.核心线程(corePool):线程池最终执行任务的角色肯定还是线程,同时我们也会限制线程的数量,所以我们可以这样理解核心线程,有新任务提交时,首先检查核心线程数,如果核心线程都在工作,而且数量也已经达到最大核心线程数,则不会继续新建核心线程,而会将任务放入等待队列。 2 阅读全文
摘要:
java创新线程需要占用大量资源,需要JVM和操作系统配合完成大量工作。 1.必须为线程分配和初始化大量内存,其中包含至少1MB的栈内存。 2.需要进行系统调用,以便在OS中创建和注册本地线程。 Java高并发应用频繁创建和销毁线程的操作是非常低效的,而且是不被编程规范所允许的。 线程池可以降低ja 阅读全文
摘要:
Java中线程分为两类:User Thread(用户线程)、Daemon Thread(守护线程)。 只要当前JVM实例中存在任何一个用户线程没有结束,那全部守护线程就可以存留。 当全部的用户线程都结束工作的时候,守护线程会随着JVM一同停止工作。 注意: 1.thread.setDaemon(tr 阅读全文
摘要:
死锁发生的四个必要条件: 1.互斥条件,同一时间只能有一个线程获取资源。 2.不可剥夺条件,一个线程已经占有的资源,在释放之前不会被其他线程抢占。 3.请求和保持条件,线程等待过程中不会释放已占有的资源。 4.循环等待条件,多个线程互相等待对方释放资源。 死锁的预防,就是要打破这四个必要条件: 1. 阅读全文