线程
丁天才
这个作者很懒,什么都没留下…
展开
-
自制线程池
1.背景 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。 服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。 2.解决方法 构建服务器应用程序的一个过于简单的模型应该是:每当一个请求到达就创建一个新线程,然后在新线程中为请求服务。 ...原创 2010-02-04 09:56:42 · 180 阅读 · 0 评论 -
ThreadLocal 的原理和实例
ThreadLocal 是java开源中非常流行的线程管理工具类,它能防止并发并且能提高效率,应该如果用synchronized,效率实在太差了。 看了它的源码,我们就很容易知道它的原理了: [code="java"]public class ThreadLocal { private Map values = Collections.synchronizedMap(new HashMa...原创 2013-06-05 10:02:45 · 82 阅读 · 0 评论 -
jdk自带线程池ThreadPoolExecutor实例
[code="java"]import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import...原创 2013-06-05 10:14:09 · 305 阅读 · 0 评论 -
一个线程sleep时候,其他线程照常运行
[code="java"] public class SleepThread extends Thread{ @Override public void run() { try { System.out.println("sleep start"); Thread.sleep(10000); System.out.println("sleep end...原创 2013-06-05 10:15:55 · 1369 阅读 · 0 评论 -
ThreadLocal在hiberate中的使用
public class HibernateUtil { 2. public static final SessionFactory sessionFactory; 3. static { 4. try { 5. sessionFactory = new Config...原创 2013-06-05 10:16:05 · 194 阅读 · 0 评论 -
ThreadLocal在spring中的使用
spring mvc中它的核心类是DispatcherServlet, 在处理请求时,我们看到它如果掉用了doService方法里的doDispath方法。 [code="java"] protected void doService(HttpServletRequest request, HttpServletResponse response) throws Except...原创 2013-06-05 10:16:13 · 384 阅读 · 0 评论 -
自己线程池设计的主要结构
老实说,对于线程池我还是属于比较初级的阶段。 下面是我自己设计线程池的思想。 1.有一个线程池mananger. 2.有个工作list. 3.有个等待list. 4.有个实现了Runnable的Task. 一般的逻辑很简单,就是当外面有新的线程进来时候,我们就把先check工作list是否已经满了, 如果没满: 就加进去,然后start。 当线程run方法结束后,我们...原创 2013-06-06 23:37:05 · 212 阅读 · 0 评论 -
interrupt 终止线程
[code="java"] public class SleepThread extends Thread{ @Override public void run() { try { while(true){ System.out.println("sleep start"); Thread.sleep(10000); System.out....原创 2013-06-17 21:27:51 · 192 阅读 · 0 评论 -
join 只能阻塞当前线程,不能阻塞其它并行线程
join 会阻塞当前线程,会强制完其自己的线程后,再释放当前线程的阻塞。 但是它并不阻塞其他线程。 [code="java"]public class ThreadTest { /** * @param args */ public static void main(String[] args) { Thread t1=new SleepThread("t1");...原创 2013-06-17 21:35:47 · 750 阅读 · 0 评论