ฉันจะทราบได้อย่างไรว่าฉันมีหนึ่งกระบวนการที่มีสองเธรดหรือสองกระบวนการ


1

ฉันสังเกตเห็นว่า Chrome (ตอนนี้มีชื่อเสียง) สร้างอินสแตนซ์จำนวนมากในตัวจัดการงาน มีเธรดจำนวนมากและกระบวนการเดียวหรือไม่ หรือมันเป็นกระบวนการหลายอย่าง นั่นคือตัวจัดการงานแสดงหัวข้อหรือมันแสดงกระบวนการ?

สมมติว่าฉันไปที่ orb / start และฉันเปิด cmd จากนั้นฉันไปที่นั่นอีกครั้งแล้วเปิดอีก cmd นั่นคือกระบวนการที่แยกกันสองกระบวนการแทนที่จะเป็นหนึ่งกระบวนการที่มีสองเธรดหรือไม่

ตอนนี้สมมติว่าฉันเปิด cmd จากนั้นฉันจะเปิด cmd อีกอัน นั่นคือหนึ่งกระบวนการสองเธรดหรือไม่ หรือว่าเป็นสองกระบวนการ


นั่นคือกระบวนการsuperuser.com/a/1065847/174557
magicandre1981

@ magicandre1981 ดูที่นี่stackoverflow.com/questions/4190949/…ฉันเดาว่าเป็นกรณีที่เธรดมักเกี่ยวข้องกับฟังก์ชันเฉพาะภายในกระบวนการดังกล่าวและไม่เกี่ยวข้องกับการเรียกใช้กระบวนการหรือไม่
barlop

ฉันไม่เข้าใจความคิดเห็นล่าสุดของคุณ ทำเครื่องหมายอธิบายแล้ว: blogs.technet.microsoft.com/markrussinovich/2009/07/05/…
magicandre1981

คำตอบ:


3

ของ Windows "ที่ Task Manager" เพียงแสดงให้เห็นถึงกระบวนการ (มิฉะนั้นคุณจะเห็นจำนวนมากของรายการที่ซ้ำกันสำหรับทุกอย่างตั้งแต่เกือบทุกปพลิเคชัน Windows เป็นแบบมัลติเธรดรวมถึง Chrome.) หากต้องการดูกระทู้ของกระบวนการใช้Process Explorerหรือกระบวนการ Hacker ; ทั้งคู่มีแท็บ "เธรด" ในกล่องโต้ตอบคุณสมบัติกระบวนการ

เมื่อคุณเรียกใช้บางอย่างผ่านทางเรียกใช้ ...หรือพร้อมท์คำสั่งมันจะเริ่มต้นเป็นกระบวนการใหม่เสมอ มันไม่สมเหตุสมผลเลยที่จะเป็นเธรดใหม่ในกระบวนการที่มีอยู่เนื่องจากเธรดใช้หน่วยความจำร่วมกันและทรัพยากรอื่น ๆ ดังนั้นเธรดใหม่ที่สร้างขึ้น "จากที่ใดก็ได้" เพียงแค่ไม่รู้ว่าจะทำอย่างไรกับสิ่งที่ได้รับ มันจะเหยียบย่ำไปทั่วแอพที่กำลังทำงานอยู่

  • ที่กล่าวว่าเมื่อกระบวนการใหม่เริ่มขึ้นก็สามารถติดต่ออินสแตนซ์ที่มีอยู่ นั่นคือสิ่งที่ Chrome และ Firefox ทำ - พวกเขาเพียงแค่ส่งข้อความ "IP เฮ้ผู้ใช้ต้องการหน้าต่างใหม่" ไปยังกระบวนการ Firefox 'หลัก' และออกทันทีหลังจากนั้น

  • สำหรับหน้าต่างใหม่นั้นโดยปกติจะไม่ได้รับเธรดใหม่ด้วยตัวเอง - โดยส่วนใหญ่แล้วหากกระบวนการเดียวตัดสินใจเปิดหลายหน้าต่างพวกเขาทั้งหมดจะทำงานใน "UI เธรด" เดียวกันเนื่องจากเธรดหลักเท่านั้น ได้รับข้อความหน้าต่าง แต่จะใช้เธรดเพิ่มเติมสำหรับพื้นหลังและ / หรืองานที่รันนาน


ตามหมายเหตุข้างต้นเครื่องมือLinux htop จะแสดงเธรดทั้งหมดตามค่าเริ่มต้น (เนื่องจากเธรด Linux ไม่แตกต่างจากกระบวนการ) และทำให้ผู้ใช้สับสนทุกครั้ง หากคุณใช้ htop ตรวจสอบให้แน่ใจว่าได้เลือก "แสดงชื่อเธรดที่กำหนดเอง" (ในภาพหน้าจอที่เชื่อมโยง) หรือ "ซ่อนเธรดผู้ใช้" (เพื่อรับรายการกระบวนการแบบดั้งเดิมเท่านั้น)

ตัวอย่างเช่นนี่เป็นเพียงส่วนเล็ก ๆ ของแผนผังกระบวนการของ Linux Chromium รวมถึงทั้งกระบวนการย่อยและเธรด (กระบวนการหลักไม่พอดีในภาพหน้าจอ):

(โปรดทราบว่าแม้จะมีการระบายสีด้วยสีเขียวก็ตามเธรดที่แสดงใน htop ไม่ใช่ชุด สีเขียว )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.