上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 168 下一页
摘要: 多行指令,或者CPU的多个步骤:类似于代码里面的多行代码,如果不像syncnized锁或者lock锁住,中间就会打断,就不是原子的。 阅读全文
posted @ 2019-04-27 18:12 无天666 阅读(458) 评论(0) 推荐(0) 编辑
摘要: x = 10; //语句1y = x; //语句2x++; //语句3x = x + 1; //语句4咋一看,有些朋友可能会说上面的4个语句中的操作都是原子性操作。其实只有语句1是原子性操作,其他三个语句都不是原子性操作。 语句1是直接将数值10赋值给x,也就是说线程执行这个语句的会直接将数值10写 阅读全文
posted @ 2019-04-27 12:19 无天666 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 1.ArrayDeque, (数组双端队列) 2.PriorityQueue, (优先级队列) 3.ConcurrentLinkedQueue, (基于链表的并发队列) 4.DelayQueue, (延期阻塞队列)(阻塞队列实现了BlockingQueue接口) 5.ArrayBlockingQue 阅读全文
posted @ 2019-04-26 15:49 无天666 阅读(572) 评论(0) 推荐(0) 编辑
摘要: s,e在线程栈里面,TransferStack在堆里面,方法只是线程的执行逻辑。线程过来调用transfer方法,线程在堆里面创建一个节点,加到Stack里面去,然后这个线程归属节点的waiter,阻塞(方法局部变量保留)。配对的线程过来,在堆里创建一个节点加入stack, 配对后移除2个节点,正在 阅读全文
posted @ 2019-04-26 12:58 无天666 阅读(959) 评论(0) 推荐(0) 编辑
摘要: 不像ArrayBlockingQueue、LinkedBlockingDeque之类的阻塞队列依赖AQS实现并发操作,SynchronousQueue直接使用CAS实现线程的安全访问。由于源码中充斥着大量的CAS代码,不易于理解,所以按照笔者的风格,接下来会使用简单的示例来描述背后的实现模型。 队列 阅读全文
posted @ 2019-04-24 17:05 无天666 阅读(636) 评论(0) 推荐(1) 编辑
摘要: 1、在构造函数中启动线程 我在很多代码中都看到这样的问题,在构造函数中启动一个线程,类似这样: public class A{ public A(){ this.x=1; this.y=2; this.thread=new MyThread(); this.thread.start(); } }... 阅读全文
posted @ 2019-04-24 15:38 无天666 阅读(552) 评论(0) 推荐(0) 编辑
摘要: /** * 第一个servlet程序 * @author APPle * */ public class HelloServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,... 阅读全文
posted @ 2019-04-23 02:30 无天666 阅读(204) 评论(0) 推荐(0) 编辑
摘要: public class AtomicInteger extends Number implements java.io.Serializable { private static final long serialVersionUID = 6214790243416807050L; // setup to use Unsafe.compareAndSwapInt for up... 阅读全文
posted @ 2019-04-22 23:55 无天666 阅读(211) 评论(0) 推荐(0) 编辑
摘要: public class AtomicReference implements java.io.Serializable { private static final long serialVersionUID = -1848883965231344442L; private static final Unsafe unsafe = Unsafe.getUnsafe(); ... 阅读全文
posted @ 2019-04-21 18:18 无天666 阅读(463) 评论(0) 推荐(0) 编辑
摘要: public class Snippet { //修改的是AtomicStampedReference对象里面的值了。 public static void main(String[] args) { //现在AtomicStampedReference里面的pair是{aaa,1}, AtomicStampedReference ... 阅读全文
posted @ 2019-04-21 12:50 无天666 阅读(479) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 168 下一页