线程和进程的区别是什么?程序员必须准备的一道高频面试题 线程和进程的区别是什么( 二 )


有了线程技术,我们就可以在一个进程中创建多个线程,让它们在“同一时刻”分别去做不同的工作了 。这些线程共享同一块内存,线程之间可以共享对象、资源,如果有冲突或需要协同,还可以随时沟通以解决冲突或保持同步 。

线程和进程的区别是什么?程序员必须准备的一道高频面试题  线程和进程的区别是什么

文章插图
不过,多线程技术不是万金油,它有一个致命的缺点:在一个进程内,不管你创建了多少线程,它们总是被限定在一颗CPU内,或者多核CPU的一个核内 。这意味着,多线程在宏观上是并行的,在微观上则是分时切换串行的,多线程编程无法充分发挥多核计算资源的优势 。这也是使用多线程做任务并行处理时,线程数量超过一定数值后,线程越多速度反倒越慢的原因 。
线程和进程的区别是什么?程序员必须准备的一道高频面试题  线程和进程的区别是什么

文章插图
多进程技术正好弥补了多线程编程的不足,我们可以在每一颗CPU上,或者多核CPU的每一个核上启动一个进程,如果有必要,还可以在每个进程内再创建适量的线程,最大限度地使用计算资源解决问题 。因为不在同一块内存区域内,和线程相比,进程间的资源共享、通信、同步等,都要麻烦得多,受到的限制也更多 。
#pgc-card。pgc-card-href {text-: none;: none;: block;width: 100%;: 100%;}#pgc-card。pgc-card-href:hover {text-: none;}/*pc 样式*/。pgc-card {box-: -box;: 164px;: 1px solid #;: ;: 20px 94px 12px 180px;: ;}。pgc-card::after {: ” “;: block;-left: 1px solid #;: 120px;: ;right: 76px;top: 20px;}。pgc-cover {: ;width: 162px;: 162px;top: 0;left: 0;-size: cover;}。
pgc- {: ;: ;top: 50%;--: (-50%);: (-50%);}。pgc--title {font-size: 18px;color: #222;line-: 1;font-: bold;: ;text-: ;white-space: ;}。pgc--desc {font-size: 14px;color: #444;: ;text-: ;-top: 9px;: ;line-: 1 。2em;: ---box;--line-clamp: 2;--box-: ;}。
pgc--price {font-size: 22px;color: #;-top: 18px;line-: 1em;}。pgc-card-buy {width: 75px;: ;right: 0;top: 50px;color: #;font-size: 14px;text-align: ;}。pgc-buy-text {-top: 10px;}。pgc-icon-buy {: 23px;width: 20px;: -block;: url();}#pgc-card。pgc-card-href {text-: none;: none;: block;width: 100%;: 100%;}#pgc-card。pgc-card-href:hover {text-: none;}/*pc 样式*/。
pgc-card {box-: -box;: 164px;: 1px solid #;: ;: 20px 94px 12px 180px;: ;}。pgc-card::after {: ” “;: block;-left: 1px solid #;: 120px;: ;right: 76px;top: 20px;}。pgc-cover {: ;width: 162px;: 162px;top: 0;left: 0;-size: cover;}。pgc- {: ;: ;top: 50%;--: (-50%);: (-50%);}。
pgc--title {font-size: 18px;color: #222;line-: 1;font-: bold;: ;text-: ;white-space: ;}。pgc--desc {font-size: 14px;color: #444;: ;text-: ;-top: 9px;: ;line-: 1 。2em;: ---box;--line-clamp: 2;--box-: ;}。pgc--price {font-size: 22px;color: #;-top: 18px;line-: 1em;}。pgc-card-buy {width: 75px;: ;right: 0;top: 50px;color: #;font-size: 14px;text-align: ;}。
pgc-buy-text {-top: 10px;}。pgc-icon-buy {: 23px;width: 20px;: -block;: url();}#pgc-card。pgc-card-href {text-: none;: none;: block;width: 100%;: 100%;}#pgc-card。pgc-card-href:hover {text-: none;}/*pc 样式*/。pgc-card {box-: -box;: 164px;: 1px solid #;: ;: 20px 94px 12px 180px;: ;}。pgc-card::after {: ” “;: block;-left: 1px solid #;: 120px;: ;right: 76px;top: 20px;}。
pgc-cover {: ;width: 162px;: 162px;top: 0;left: 0;-size: cover;}。pgc- {: ;: ;top: 50%;--: (-50%);: (-50%);}。pgc--title {font-size: 18px;color: #222;line-: 1;font-: bold;: ;text-: ;white-space: ;}。pgc--desc {font-size: 14px;color: #444;: ;text-: ;-top: 9px;: ;line-: 1 。
2em;: ---box;--line-clamp: 2;--box-: ;}。pgc--price {font-size: 22px;color: #;-top: 18px;line-: 1em;}。pgc-card-buy {width: 75px;: ;right: 0;top: 50px;color: #;font-size: 14px;text-align: ;}。pgc-buy-text {-top: 10px;}。pgc-icon-buy {: 23px;width: 20px;: -block;: url();}