多线程
seapeak007
这个作者很懒,什么都没留下…
展开
-
java自带线程池和队列详细讲解
Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是转载 2016-11-28 18:01:11 · 265 阅读 · 0 评论 -
秒杀抢购开发总结
1.因为前端页面时间跟服务器时间不一致或者存在网络传输时间因此后端需要校验当前请求访问的时间是不是在秒杀时间内,如果不存在则不允许抢购2.秒杀肯定是要部署多台服务器,如果存在库存或者其他的统一的问题,需要注意部署多台服务器的环境redisClient.setnx(newKey+m,String.valueOf(newValue)) ;redis的setnx是有锁控制3.原创 2017-08-21 18:36:02 · 6360 阅读 · 2 评论 -
必须串行执行程序如何提高执行效率之队列方法
场景是meta与index,为1对多,index与user为1对多,程序需要先判断meta表中是否存在逻辑进行表的处理,然后index根据meta_id来进行是否表存在逻辑,然后user表再根据index_id进行表存储;这样逻辑处理的需要串行,这样操作处理数据库效率会非常低。针对这种情况,可以采用三个固定队列的方式,meta队列,index队列,user队列,队列按照先进先出的策略执行,这样就会原创 2017-07-11 20:11:38 · 894 阅读 · 0 评论 -
调用Process.waitfor导致的进程挂起(较详细)
转载地址:http://blog.csdn.net/sj13051180/article/details/47865803问题背景如果要在Java中调用shell脚本时,可以使用Runtime.exec或ProcessBuilder.start。它们都会返回一个Process对象,通过这个Process可以对获取脚本执行的输出,然后在Java中进行相应处理。例如,下面的代码:转载 2017-04-08 14:32:36 · 6359 阅读 · 0 评论 -
process.waitFor() 返回值含义
转载地址:http://blog.csdn.net/wangbaochu/article/details/45151733以下是Linux中返回值对照表"OS error code 1: Operation not permitted""OS error code 2: No such file or directory""OS error code 3: No转载 2017-04-08 14:18:38 · 4118 阅读 · 0 评论 -
多线程Runtime.getRuntime().exec常见问题
Java调用一个bat批处理程序,调用几十次后会莫名的不再执行,无任何异常抛出。千试万试,LOG精细到逐行,只知道走到Runtime.getRuntime().exec()程序就停止了,但打死不知道为什么。那真以为里面有鬼。后来寻摸着Runtime.getRuntime().exec()有问题,真给我找到答案了。大概原因是,调用Runtime.getRuntime().exec()后,如果不及转载 2017-04-08 13:23:29 · 4213 阅读 · 0 评论 -
ThreadLocal--线程独自共享变量
变量值的共享可以使用public static变量的形式,所有的线程都使用同一个public static变量。如果想实现每一个线程都有自己的共享变量需要用到类ThreadLocal。package wusc.edu.concurrent.comondemo;public class MyThreadLocal { public static ThreadLocal t = ne原创 2016-11-24 17:59:10 · 1161 阅读 · 0 评论 -
JAVA后台程序设计及UTIL.CONCURRENT包的运用
JAVA后台程序设计及UTIL.CONCURRENT包的应用JAVA后台程序设计及UTIL.CONCURRENT包的应用何 恐摘要 : 在很多软件项目中,JAVA语言常常被用来开发后台服务程序。线程池技术是提高这类程序性能的一个重要手段。在实践中,该技术已经被广泛的使用。本文首先 对设计后台服务程序通常需要考虑的问题进行了基本的论述,随后介绍了JAVA线程池的原理、使用和其他一转载 2016-11-21 16:16:02 · 422 阅读 · 0 评论 -
jdk 1.5中的concurrent 在多线程并发中的使用
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这 些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、 notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方转载 2016-11-21 16:14:18 · 449 阅读 · 0 评论 -
3个线程每个线程只能打印自己的名字,在屏幕上顺序打印 ABC,打印10次
public class TeatPrintOrder { public static void main(String args[]){ AtomicInteger atomic = new AtomicInteger(); Print p = new Print(); ThreadTest a = new ThreadTest(p,"A",0,10,atomic);原创 2016-12-02 18:09:26 · 1867 阅读 · 0 评论 -
Java中的Copy-On-Write容器
聊聊并发-Java中的Copy-On-Write容器Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyO转载 2016-11-30 16:30:08 · 374 阅读 · 0 评论 -
ConcurrentHashMap详解以及get方法保持同步的解释
ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get转载 2016-11-30 16:12:15 · 21929 阅读 · 0 评论 -
深入剖析ConcurrentHashMap(2)
深入剖析ConcurrentHashMap(2)经过之前的铺垫,现在可以进入正题了。我们关注的操作有:get,put,remove 这3个操作。对于哈希表,Java中采用链表的方式来解决hash冲突的。一个HashMap的数据结构看起来类似下图:实现了同步的HashTable也是这样的结构,它的同步使用锁来保证的,并且所有同步操作使用的是同一个锁对象。这样若转载 2016-11-30 16:09:37 · 520 阅读 · 0 评论 -
深入剖析ConcurrentHashMap(1)
深入剖析ConcurrentHashMap(1)原文是09年时写的,在公司的邮件列表发过,同事一粟 和清英 创建的并发编程网 对这方面概念和实战有更好的文章,贴出来仅供参考。pdf格式在:http://www.slideshare.net/hongjiang/concurrent-hashmap 可以获取ConcurrentHashMap是Java5中新增加的一个线程安全的Ma转载 2016-11-30 16:08:28 · 314 阅读 · 0 评论 -
JAVA多线程之线程间的通信方式
线程间通信:由于多线程共享地址空间和数据空间,所以多个线程间的通信是一个线程的数据可以直接提供给其他线程使用,而不必通过操作系统。所以线程间通信和同步的方式主要有锁、信号、信号量进程间的通信则不同,它的数据空间的独立性决定了它的通信相对比较复杂,需要通过操作系统。通信机制主要有:管道、有名管道、消息队列、信号量、共享空间、信号、套接字(socket)。一,介绍转载 2016-11-29 16:59:36 · 592 阅读 · 0 评论 -
线程之间数据传递ThreadLocal,InheritableThreadLocal,TransmittableThreadLocal
项目中异步处理方法获取用户对象,发现获取不到,发现用户对象是ThreadLocal进行传递,但是异步属于子线程,ThreadLocal对父子线程传递有问题的,后来将对象的传递值改为了TransmittableThreadLocal进行传递。public static TransmittableThreadLocal<Map<String, Object>> trans...原创 2019-06-20 20:45:06 · 2012 阅读 · 0 评论