สิ่งตีพิมพ์ในหัวข้อ 'concurrency'


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

การตรวจจับสภาพการแข่งขันใน Go
การตรวจจับสภาพการแข่งขันด้วยตัวอย่าง Reverse Proxy สภาพการแข่งขันถือเป็นข้อบกพร่องของซอฟต์แวร์ที่ละเอียดอ่อนแต่ก็สร้างความเสียหายร้ายแรง Chat GPT อธิบายว่า: ข้อบกพร่องของซอฟต์แวร์ที่เกิดขึ้นเมื่อความถูกต้องของโปรแกรมขึ้นอยู่กับระยะเวลาสัมพัทธ์หรือการสลับกันของการดำเนินการหลายรายการพร้อมกัน คำนี้มักใช้เป็นทางลัดทางจิตเพื่ออธิบายพฤติกรรมของซอฟต์แวร์ที่ไม่สามารถอธิบายได้ สิ่งเหล่านี้เป็นบ่อเวลาครั้งใหญ่และเป็นบ่อเกิดของความคับข้องใจไม่รู้จบ..

เลเยอร์เครือข่ายสมัยใหม่ใน iOS โดยใช้ Async/Await
เลเยอร์เครือข่ายสมัยใหม่ใน iOS โดยใช้ Async/Await ภาพรวมใหม่ของหัวข้อเครือข่ายที่ใช้ประโยชน์จากโมเดลการทำงานพร้อมกันของ Swift ฉันต้องสารภาพว่า การสร้างเลเยอร์เครือข่ายเป็นหัวข้อที่น่าตื่นเต้นสำหรับฉันมาโดยตลอด นับตั้งแต่วันแรกของการเขียนโปรแกรม iOS ในต้นปี 2550 โปรเจ็กต์ใหม่แต่ละโปรเจ็กต์แสดงถึงโอกาสใหม่ในการปรับแต่งหรือทำลายแนวทางทั้งหมดที่ฉันเคยใช้มาจนถึงตอนนี้ ความพยายามครั้งสุดท้ายของฉันในการเขียนบางอย่างในหัวข้อนี้ ลงวันที่ปี 2017..

การล็อคในแง่ดีเทียบกับการล็อคในแง่ร้าย (เป็นภาษาอังกฤษธรรมดา)
การล็อคในแง่ดีและการล็อคในแง่ร้ายเป็นสองเทคนิคที่ใช้ในการจัดการการเข้าถึงพร้อมกันในระบบธุรกรรม เช่น ฐานข้อมูลเชิงสัมพันธ์ และหน่วยความจำธุรกรรมของซอฟต์แวร์ การล็อคในแง่ร้าย การล็อคในแง่ร้ายประกอบด้วยการบล็อกการเข้าถึงส่วนหนึ่งของข้อมูลจนกว่าการแก้ไขจะสิ้นสุดลง กล่าวอีกนัยหนึ่ง ให้ทำการล็อคชั่วคราวบน...

ทำให้เกิดความสอดคล้องกัน: สำรวจพลังแห่งความเท่าเทียมของรัส
การเห็นพร้อมกันเป็นแนวคิดการเขียนโปรแกรมที่สำคัญที่ช่วยให้สามารถดำเนินการหลายอย่างพร้อมกันได้ เป็นคุณสมบัติที่สำคัญสำหรับการสร้างโปรแกรมที่มีประสิทธิภาพและรวดเร็ว โดยเฉพาะอย่างยิ่งเมื่อต้องจัดการกับข้อมูลจำนวนมาก Rust ซึ่งเป็นภาษาการเขียนโปรแกรมระบบยอดนิยม นำเสนอการทำงานพร้อมกันอันทรงพลังซึ่งทำให้ง่ายต่อการสร้างแอปพลิเคชันที่ทำงานพร้อมกัน ในบทความนี้ เราจะสำรวจฟีเจอร์การทำงานพร้อมกันของ Rust และวิธีใช้เพื่อสร้างแอปพลิเคชันประสิทธิภาพสูง เรา…

คำถามในหัวข้อ 'concurrency'

ใช้เวลานานแค่ไหนในการสร้าง 1 ล้านเธรดใน Haskell
สิ่งที่ฉันเข้าใจ Haskell มีเธรดสีเขียว แต่จะมีน้ำหนักเบาขนาดไหน เป็นไปได้ไหมที่จะสร้าง 1 ล้านเธรด? หรือ 100,000 เธรดจะใช้เวลานานเท่าใด?
2981 มุมมอง

การเขียนโปรแกรมแบบมัลติคอร์/พร้อมกันและ .NET/Java
ฉันมักจะได้ยินเกี่ยวกับภาษาอื่นที่ได้รับการส่งเสริมว่าเหมาะสำหรับการเขียนโปรแกรมแบบมัลติคอร์/พร้อมกันมากกว่า เช่น Clojure, Scala, Erlang ฯลฯ แต่ฉันสับสนเล็กน้อยว่าทำไมฉันต้องกังวลเกี่ยวกับหลายคอร์ Java/.NET VM ไม่ควรจัดการสิ่งนั้นโดยอัตโนมัติ...
509 มุมมอง
schedule 10.01.2024

การล็อคแบบบล็อคเทียบกับการล็อคแบบไม่บล็อค
ฉันกำลังคิดอยู่ที่นี่: หากคุณมี 2 เธรดที่ดำเนินการการดำเนินการ FAST ที่จำเป็นต้องซิงโครไนซ์ วิธีการไม่บล็อกจะเร็วกว่า/ดีกว่าวิธีการบล็อก/สลับบริบทไม่ใช่หรือ การไม่บล็อกฉันหมายถึงบางสิ่งเช่น: ในขณะที่ (จริง) { ถ้า (checkAndGetTheLock ()) พัง; }...
2570 มุมมอง

การแยกธุรกรรมพร้อมกัน - เหตุใดฉันจึงสามารถอัปเดตชุดย่อยของบันทึกธุรกรรมอื่นได้
ฉันกำลังพยายามทำความเข้าใจปัญหาที่ฉันพบซึ่งฉันไม่เชื่อว่าควรจะเป็นไปได้เมื่อต้องจัดการกับธุรกรรมโดยใช้ระดับการแยกการอ่านที่คอมมิต ฉันมีโต๊ะที่ใช้เป็นคิว ในหนึ่งเธรด (การเชื่อมต่อ 1) ฉันแทรกชุดข้อมูล 20 รายการหลายชุดลงในแต่ละตาราง แต่ละชุดข้อมูล 20...
1316 มุมมอง

HttpClient ปลอดภัยที่จะใช้พร้อมกันหรือไม่?
ในตัวอย่างทั้งหมดที่ฉันสามารถหาการใช้งานของ HttpClient มันถูกใช้สำหรับการโทรครั้งเดียว แต่จะเกิดอะไรขึ้นหากฉันมีสถานการณ์ไคลเอนต์ถาวร โดยสามารถส่งคำขอหลายรายการพร้อมกันได้ โดยพื้นฐานแล้ว จะปลอดภัยหรือไม่ที่จะเรียก client.PostAsync บน 2...
78629 มุมมอง

ลดความจุของ Semaphore แบบไดนามิก
ฉันพยายามใช้เซมาฟอร์เพื่อควบคุมจำนวนคำขอที่บริการของฉันสามารถรองรับได้ เช่น. class Service : IDisposable { SemaphoreSlim s = new SemaphoreSlim(InitialCapacity); .... async void ProcessRequest() { await s.WaitAsync();...
733 มุมมอง

จัดการกับการทำงานพร้อมกันของ PostgreSQL โดยใช้ Rails find_or_create
ด้วยเหตุผลบางประการ โค้ดนี้จึงสามารถสร้างเกมที่ซ้ำกันหากผู้ใช้ที่แตกต่างกันเรียกใช้ในเวลาเดียวกัน: game = Game.find_or_create_by( status: Game::STATUS[:waiting], category_id: params[:category_id], private: 0 ) do |g| is_new = true...
768 มุมมอง

ดูเหมือนว่าฟังก์ชันตัวอ่าน IORef แบบแยกส่วนจะทำให้เธรดหลักหยุดทำงาน
ฉันกำลังทำการทดลองกับการมองเห็นพร้อมกันและหน่วยความจำและพบพฤติกรรมแปลก ๆ นี้ (ดูความคิดเห็นในบรรทัด): module Main where import Data.IORef import Control.Concurrent import System.CPUTime import System.IO main = do hSetBuffering stdout...
119 มุมมอง
schedule 06.11.2023

singleton Bean ตอบสนองคำขอพร้อมกันอย่างไร
ฉันมีคำถามเกี่ยวกับวิธีการที่ singleton beans ให้บริการคำขอพร้อมกันโดยละเอียด ฉันค้นหา StackOverflow เกี่ยวกับคำถามนี้แล้ว นี่คือตัวอย่าง ลิงก์จาก stackoverflow แต่ฉันพบเฉพาะรายละเอียดระดับสูงเท่านั้น...
39835 มุมมอง

java.util.concurrent.atomic.AtomicInteger ไม่แทนที่วิธีการเท่ากับ java.lang.Integer? [ทำซ้ำ]
ฉันเจอการเปรียบเทียบ AtomicInteger อินสแตนซ์ในโค้ดของฉัน และพบว่าไม่มีวิธีใดที่เท่าเทียมกันถูกแทนที่ อย่างไรก็ตาม java.lang.Integer จัดให้มีการใช้งานสำหรับวิธีการ equals / hashCode ผู้ใช้ต้องใช้เส้นทางอื่นในการเปรียบเทียบ int จากวิธี get()...
213 มุมมอง
schedule 04.12.2023

การมองเห็นการทำงานพร้อมกันของ Java
ฉันมีคำถามเกี่ยวกับการมองเห็นใน java การมองเห็นสามารถปรากฏได้ก็ต่อเมื่อเรามีอย่างน้อยสองเธรดซึ่งทำงานบนคอร์ซีพียูอย่างน้อย 2 คอร์ ใช่มั้ยล่ะ? ทุกคอร์สามารถแคชตัวแปรในรีจิสเตอร์และหน่วยความจำแคชได้ และเนื่องจากปัญหาการมองเห็นนั้นจึงอาจปรากฏขึ้นได้...
190 มุมมอง
schedule 28.12.2023

วิธีแยก time.sleep() ใน python concurrent.futures
ฉันกำลังเล่นกับ concurrent.futures ปัจจุบันการโทรในอนาคตของฉัน time.sleep(secs) ดูเหมือนว่า Future.cancel() ทำได้น้อยกว่าที่คิด หากอนาคตกำลังดำเนินอยู่ time.sleep() จะไม่ถูกยกเลิก เช่นเดียวกับพารามิเตอร์การหมดเวลาสำหรับ wait() ....
4498 มุมมอง
schedule 04.12.2023

(A) พฤติกรรมซิงโครนัสของการเรียก Spring jpa ด้วย CompletableFutures [ซ้ำกัน]
แก้ไข: เหตุผลนี้เป็นแคชระดับที่ 1 ตามที่อธิบายไว้ ที่นี่ วิธีแก้ไขคือการล้างข้อมูลด้วยตนเองหลังจากบันทึก ฉันมีรหัสจาวาต่อไปนี้: Player updatedPlayer = playerRepository.save(player); CompletableFuture.runAsync(() -> { List<Player>...
13 มุมมอง