2017年11月21日
摘要: 每个处理器上的写缓冲区,仅仅对它所在的处理器可见。 Java语言中有一个“先行发生”(happens—before)的规则,它是Java内存模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,其意思就是说,在发生操作B之前,操作A产生的影响都能被操作B观察到,“影响”包括修改了内存中共享 阅读全文
posted @ 2017-11-21 23:07 飞奔的菜鸟 阅读(202) 评论(0) 推荐(0)
摘要: 为了提高性能,编译器和处理器通常会对指令做重排序。重排序分为3中类型: 1:编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 2:指令级优化的重排序。 3:内存系统的重排序。 阅读全文
posted @ 2017-11-21 22:48 飞奔的菜鸟 阅读(171) 评论(0) 推荐(0)
摘要: 线程之间的通信机制有两种:共享内存和消息传递。 同步是指程序中用于控制不同线程间操作发生相对顺序的机制。 在共享内存的并发模型里,通信是隐式进行的,同步时显式进行的。程序员必须显式指定某个方法或某段代码需要在线程之间互斥执行。 在消息传递的并发模型里,由于消息的发送必须在消息的接收之前,因此同步是隐 阅读全文
posted @ 2017-11-21 22:43 飞奔的菜鸟 阅读(227) 评论(0) 推荐(0)