
多线程
Ranger1993
这个作者很懒,什么都没留下…
展开
-
微信企业号如何在十分钟内发送一万个红包
最近接到的项目是在公司年会将有一个摇红包的环节,公司共有一千人,每人可以领取十个红包。这对于程序来说是一个不小的压力吧,活动已经结束,效果很好。下面我来分享下我们Java后端采用的基本设计。总体设计思路是: 多线程 + 并发队列 + 数据库(尽可能与微信少交互) @WesApi @RequestMapping(value = "/pay/bonusThread", metho原创 2016-01-25 09:43:35 · 3206 阅读 · 1 评论 -
《java多线程编程核心技术》核心笔记(二)
【线程的通信】只能在同步方法或同步块中调用wait() 方法方法notify()也需要在同步方法或者同步代码块中调用notify()方法通知一个线程 notifyAll()可以使正在等待队列中等待统一共享资源的全部线程从等待状态退出,进入可运行状态。一般来说按照优先级顺序执行。wait方法执行完后是自动释放锁的。notify()方法释放锁的时间是在synch原创 2016-07-11 16:40:23 · 499 阅读 · 0 评论 -
JDK1.5之后怎么玩转多线程(Lock和Condition的使用)
在JDK1.5之前同步使用的是Synchronized的方法,而线程的通信使用的是wait、Notify、NotifyAll等方法, 那么1.5之后就可以使用新的类库 Lock、Condition来完成。使用新的类库有一个显著的优势在于: 1.5之前线程的通信的等待和提醒绑定的是对象,例如Object等。而现在可以实现不同线程绑定不同的Condition用于提醒和等待这样,工作效率会大幅增加。原创 2016-07-12 14:53:58 · 696 阅读 · 0 评论 -
Java中公平锁与非公平锁的区别
所谓公平锁指的是哪个线程先运行,那就可以先得到锁。非公平锁是不管线程是否是先运行,都是随机获得锁的。看下代码就清楚了。package FairAndUnFailLock;public class TestMain { public TestMain() { } public static void main(String[] args) { Service原创 2016-07-13 10:46:14 · 7887 阅读 · 0 评论 -
《java多线程编程核心技术》核心笔记(三) Lock的使用
【Lock】Lock lock = new ReentrantLock();lock.lock()就是持有了对象监视器 其他线程只有等待锁的释放。在使用notify()/notifyAll()方法进行通知时,被通知的线程是由JVM随机选择的,但是使用了ReentrantLock结合Condition类是可以实现"选择性通知"的, 在Condition原创 2016-07-25 16:13:05 · 493 阅读 · 0 评论 -
《java多线程编程核心技术》核心笔记(一)
线程具有优先级 线程的优先级具有继承特性。被调用者继承调用者的优先级 优先级高的线程 绝大部分会现执行方法内的变量是线程安全的。多个线程访问同一个对象的同步方法时,一定是线程安全的。synchronized取得的是对象锁 多个线程访问一个对象 Synchronized如果一个资源不是共享的 A线程先持有object原创 2016-07-04 11:21:22 · 1271 阅读 · 0 评论 -
多线程之多消费者与生产者
package PAndCList;public class C { private Service service; public void eat(Service service) throws InterruptedException{ synchronized (service) { while(Service.list.size()==0){ System原创 2016-07-07 10:35:07 · 304 阅读 · 0 评论 -
线程利用管道字节(字符)流进行通信
package ThreadStreamChar;import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedReader;import java.io.PipedWriter;public class ThreadInputStream extends Thread{ priva原创 2016-07-07 15:41:39 · 441 阅读 · 0 评论