簡體   English   中英

如何使用C編程中的線程計算文本文件中數字的平均值?

[英]How to calculate the average of numbers in a text file using threads in C programming?

如何在C編程中使用線程逐行計算文本文件中的數字平均值(例如:第1行中的數字平均值= xxx,第2行中的數字平均值= yyy ....)

●從文件中逐行讀取。

●一旦一個線程獲取了數據集的記錄,則另一個線程不應獲取相同的數據集。

●計算每行的平均值,然后寫入另一個文件。

假設這是C中的多線程分配,請將所有數字存儲在數組X中。然后創建兩個數組A1和A2,每個數組占文件行總數的一半。 在數組A1中,存儲來自X的所有奇數位置編號。存儲所有來自X的偶數位置編號。現在生成兩個線程,每個線程都作為參數傳遞給數組A1和A2之一。 讓每個線程將它們各自數組的所有元素的總和存儲在一個單獨的變量中。 現在,在兩個線程結束執行之后,將兩個線程的總和相加並除以行數。

使用線程時,避免競爭條件很重要。 在這里,如果您的一個線程試圖找出要讀取的行,而另一個線程試圖更新該值,則可能發生這種情況。 因此,您應該使用Mutex 每個需要讀取或寫入互斥量變量(line_number等)的線程都將獲得一個鎖,因此,如果其他線程嘗試訪問該變量,它們將掛起,直到互斥量被解鎖。 除此之外,創建線程並使它們從文件中讀取只是問題。 有關如何創建線程並與它們一起使用互斥鎖的一些示例,請查看以下鏈接:

https://www.thegeekstuff.com/2012/05/c-mutex-examples/?refcom

互斥鎖線程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM