
java多线程
文章平均质量分 91
nuaazhaofeng
爱生活,爱coding
展开
-
Java编程思想-java中的并发(一)
一、基本的线程机制并发编程使我们可以将程序划分为多个分离的、独立运行的任务。通过使用多线程机制,这些独立任务中的每一个都将由执行线程来驱动。线程模型为编程带来了便利,它简化了在单一程序中同时jiao’zhi’zai’yi’qi交织在一起的多个操作的处理。在使用线程时,CPU将轮流给每个任务分配其占用时间。每个人物都觉得自己在一直占用CPU,但事实上CPU时间是划分成片段分配给所有的任务。线程的一大好原创 2016-12-10 22:09:06 · 575 阅读 · 0 评论 -
Java编程思想-java中的并发(二)
二、共享受限资源有了并发就可以同时做多件事情了。但是,两个或多个线程彼此互相干涉的问题也就出现了。如果不防范这种冲突,就可能发生两个线程同时试图访问同一个银行账户,或向同一个打印机打印,改变同一个值等诸如此类的问题。1. 不正确地访问资源考虑下面的例子,其中一个任务产生偶数,而其他任务消费这些数字。这里,消费者任务的唯一工作就是检查偶数的有效性。首先,我们定义EvenChecker,即消费者任务,因原创 2016-12-10 22:09:38 · 904 阅读 · 0 评论 -
Java编程思想-java中的并发(四)
五、 新类库中的构件Java SE5的java.util.concurrent引入了大量设计用来解决并发问题的新类。学习使用它们将有助于编写出更加简单而强壮的并发程序。1. CountDownLatch他被用来同步一个或多个任务,强制他们等待由其他任务执行的一组操作完成。你可以向CountDownLatch对象设置一个初始计数值,任何在这个对象上调用wait()方法都将阻塞,直至这个计数值到达0。其原创 2016-12-10 22:10:41 · 347 阅读 · 0 评论 -
JAVA源码分析-深度剖析ConcurrentHashMap
还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到: HashMap是非线程安全的,HashTable是线程安全的。那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。今天我们将深入剖析一个比HashTable性能更优的线程安全的Ma转载 2017-01-15 20:02:17 · 647 阅读 · 0 评论 -
java中String、StringBuffer、StringBuilder的区别
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。private final char value[]; StringBuild原创 2017-02-18 17:13:30 · 625 阅读 · 0 评论 -
【Guava】使用Guava的RateLimiter做限流
一、常见的限流算法目前常用的限流算法有两个:漏桶算法和令牌桶算法。1.漏桶算法漏桶算法的原理比较简单,请求进入到漏桶中,漏桶以一定的速率漏水。当请求过多时,水直接溢出。可以看出,漏桶算法可以强制限制数据的传输速度。2.令牌桶算法令牌桶算法的原理是系统以一定速率向桶中放入令牌,如果有请求时,请求会从桶中取出令牌,如果能取到令牌,则可以继续完成请求,否则等待或者拒绝服务。这种算法可以应对突发程度的请求,原创 2017-07-20 11:13:48 · 1910 阅读 · 0 评论 -
Java 8学习之Lambda表达式
一、lambda表达式一个lambda表达式包含三个部分: - 一段代码 - 参数 - 自由变量的值,这里的自由指的是哪些不是参数并且没有在代码中定义的变量。示例:public static void repeat(String text, int count) { Runnable r = () -> { for (int i = 0; i < count; i++)转载 2017-08-15 16:19:58 · 236 阅读 · 0 评论