随笔分类 -  Java多线程编程

上一页 1 2 3
同步synchronized用法
摘要:今天在高人的指导下,对同步synchronized用法有了更高一层的理解,非常感谢他的无私奉献。在此把代码贴出来方便日后查阅。publicclass SfServlet { privatestatic ExpressInfoService expressInfoService=null; privatestatic Object lock =new Object(); privatestatic ExpressInfoService getExpressInfoService() { if (expressInfoService ==null) { ... 阅读全文
posted @ 2011-09-01 14:57 Ruthless 阅读(1370) 评论(0) 推荐(1) 编辑
多线程模拟实现生产者/消费者模型
摘要:题目如下:在生产者/消费者模型中,生产者Producer负责生产数据,而消费者Consumer负责使用数据。多个生产者线程会在同一时间运行,生产数据,并放到内存中一个共享的区域。期间,多个消费者线程读取内存共享区,消费里面的数据。 分析在下面Java应用程序中,生产者线程向一个线程安全的堆栈缓冲区中写(PUSH)数据,消费者从该堆栈缓冲区中读(POP)数据,这样,这个程序中同时运行的两个线程共享同一个堆栈缓冲区资源。 类Producer是生产者模型,其中的run方法中定义了生产者线程所做的操作,循环调用push()方法,将生产的100个字母送入堆栈中,每次执行完push操作后,调用sleep方 阅读全文
posted @ 2011-04-15 10:27 Ruthless 阅读(21139) 评论(2) 推荐(2) 编辑
多线程死锁问题
摘要:前天俺们谈到了加锁(线程同步),但是在使用加锁的同时又会带来一个问题,就是死锁。什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。发生死锁的原因一般是两个对象的锁相互等待造成的。那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。 3.资源分配不当。 学过操作系统的朋友都知道:产生死锁的条件有四个:1.互斥条件:所谓互斥就是进程在某一时间内独占资源。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。4. 阅读全文
posted @ 2011-04-11 23:21 Ruthless 阅读(37136) 评论(7) 推荐(2) 编辑
Java多线程入门
摘要:以下内容转自http://blog.sina.com.cn/guoyalun如何创建和理解线程 曾经在学习操作系统的时候,进程是一个重点内容,线程也学习过,但是没有什么深刻的印象。在Java多线程的学习中对线程有了一个全面而深刻的理解。一个进程可以包含一个或多个线程,一个线程就是一个程序内部的一条执行线索。 创建多线程有两种方法:继承Thread类和实现Runnable接口。通过调用继承thread对象的start()方法就可以调用该类中的run()方法。如果想要将一段代码在一个新的线程上运行时,该代码就应该位于一个类的run函数中,并且run()函数所在的类是Tread类的子类。启动一个新的 阅读全文
posted @ 2011-04-08 16:37 Ruthless 阅读(5971) 评论(2) 推荐(1) 编辑

上一页 1 2 3