看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《BreathWay (息尉)》之銘言: : 開發平台(Platform): (Ex: Win10, Linux, ...) : Linux : 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) : GCC : 問題(Question): : 我寫了一個以暴力演算法求最佳解的程式, : 主要是透過不斷更新所找到的更好的解來達成。 : 但是我希望能設定一個時間上限, : 如果程式還沒跑完就直接輸出目前找到的最好的解。 : 請問有辦法在 C 裡面實作這個功能嗎? 如果想跟MVC 87%像 前置準備: 1. threadM 計算單元 2. threadV 用來show結果 3. threadC 用來接收input 4. 1~2個signal 5. 一個buffer (稱作render buffer) 對threadV而言 render buffer是read only 對threadM而言 render buffer做atomic寫入 online流程: 每次ThreadC拿到input就signal給ThreadM (optional : 同時signal給ThreadV 然後thread V開始計時) ThreadM計算單元先初始化render buffer ThreadM開始做progressive計算 ThreadM如果有current best就atomic更新render buffer ThreadV 想要多久去讀一次buffer都可以(原PO的是一段固定的時間) ----------------------------------------------------------------------- 如果想要跟flux架構87% 就多準備幾個buffer thread C只讀 i/o buffer 只寫 input buffer thread M只讀 input buffer 只寫render buffer thread V只讀 render buffer ----------------------------------------------------------------------- 如果只開兩條thread 那就VC合併成一條 threadVC signal threadM之後就等時間到去拿render buffer資料show ----------------------------------------------------------------------- 如果只開一條thread 那就一直檢查時間是否到了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.210.209 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1515031530.A.6B7.html ※ 編輯: Sidney0503 (140.113.210.209), 01/04/2018 15:54:28