一、并发编程的挑战 1、上下文切换 (1)上下文切换的问题 在处理器上提供了强大的并行性就使得程序的并发成为了可能。处理器通过给不同的线程分配不同的时间片以实现线程执行的自动调度和切换,实现了程序并行的假象。 在单线程中:线程保存串行的执行,线程间的上下文切换不会造成很大的性能开销。 而在多线程中: Read More
posted @ 2017-07-09 17:16 奋斗超云 Views(373) Comments(0) Diggs(0) Edit
1、什么是内存模型,为什么需要它? (1)内存模型的发展背景 近几年计算性能通过重排序实现了很大的提升,而且处理器也越来越朝着多核处理器发展以实现硬件的并行性。随着处理器的不断强大,编译器也在不断的改进:通过指令重排序来实现优化执行,使用成熟的全局寄存器分配 算法。这些都使得线程在内存内的操作更趋于复杂,如果没有正确的同步机制下,内存间的操作呈现乱序执行,从而不能保证计算结果的正确性。... Read More
posted @ 2017-07-09 11:36 奋斗超云 Views(366) Comments(0) Diggs(0) Edit