Notex

Categories · Java

主页

关于

归档

loading..
JavaThreadThread-Safe

Java 中线程的状态及转换

线程是操作系统中能够进行运算调度的最小单位了。它被包含在进程中,是进程在运行过程中,真正的『打工人』。每一个进程有且至少有一个线程存在,默认的线程我们可以把它叫作『主线程』。 在 Java 中,进行线程的切换是一件比较浪费资料的事情,这意味着代码的执行需要从用户态切换到内核态,然后再从内核态切换回用户态。但这也不是说我们不能用线程,合理的使用可以提高程序执行的吞吐率。 既然上面提到了『线程切换』,那我们就来聊聊,线程的几种状态。

Read more
loading..
JavaJVMGC

关于 GC

GC(Garbage Collect)是 Java 虚拟机最著名的一个机制——内存回收。 我们按着下面的流程来讲述 GC: 什么是 GC GC 常用算法 垃圾收集器是什么 finalize()方法详解 总结

Read more
loading..
JavaThreadThread-Safe

关于线程安全的一切

自从多线程这个概念被发明之后,在开发中就无时无刻不得操心线程安全的问题。 但是,在了解线程安全之前,我们先来了解一下 Java 的内存模型,搞明白线程是如何工作的。

Read more
loading..
JavaThread

关于线程池的一切

线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用。因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等。 我们可以把并发执行的任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程。只要池里有空闲的线程,任务就会分配给一个线程执行。在线程池的内部,任务被插入一个阻塞队列(Blocking Queue ),线程池里的线程会去取这个队列里的任务。当一个新任务插入队列时,一个空闲线程就会成功的从队列中取出任务并且执行它。 线程池经常应用在多线程服务器上。每个通过网络到达服务器的连接都被包装成一个任务并且传递给线程池。线程池的线程会并发的处理连接上的请求。 合理利用线程池能够带来三个好处。 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成..

Read more