reentrancy

    2熱度

    2回答

    在MySQL中,我必須檢查選擇查詢是否已經返回任何記錄,如果沒有,我插入一條記錄。我擔心PHP腳本中的整個if-else操作並不像我想要的那樣原子化,即在某些情況下會中斷,例如,如果調用腳本的另一個實例,並且需要處理相同的記錄: if(select returns at least one record) { update record; } else { insert

    9熱度

    4回答

    似乎有很多關於多線程編程的知識,它有點嚇人。 對於我目前的需要,我只是想防止的方法從另一個線程再次被稱爲完成之前,我的問題是: 這是適當的(安全)的方法,使方法線程安全? class Foo { bool doingWork; void DoWork() { if (doingWork) // <- sophistocated thread-safety

    12熱度

    3回答

    這裏是一個無意義的擴展方法作爲示例: public static class MyExtensions { public static int MyExtensionMethod(this MyType e) { int x = 1; x = 2; return x } } 假設執行的線程高達完成幷包括線: x = 2;

    1熱度

    3回答

    對不起,我認爲它很好地解釋了我感興趣的內容。例如C函數strtok在最壞的情況下不是線程安全的:),它使用全局狀態。所以,即使它被調用不同的數據,它也不是線程安全的。 所以我的問題是有「C++減C」功能有相同的問題。 我再次對「如果從10個線程寫入同一個文件是未定義的行爲」這樣的東西不感興趣。我感興趣的是「如果你從2個差異線程(每個線程寫入它自己的文件)寫入2個不同線程安全的diff文件」。

    2熱度

    4回答

    我有一個需要處理的幾百個項目的循環。 每個項目通過有條件地設置,其中所述項是使用此的SQLConnection作爲處理的一部分處理的全球的SQLConnection處理。 由於這個原因,所有這些項目都不允許並行處理是至關重要的。 我明白,這是不好的設計,我希望能儘快實用糾正它。 但是它似乎是,儘管我盡了最大努力,該代碼正在經歷某種形式的多線程的。不知何故,其中一個任務引發了一個異常。 這個例外是在

    4熱度

    1回答

    ,我已經看到,如何使一個ContentProvider示例全都使用insert,query,update,和delete方法內的UriMatcher#match(Uri)方法容易地處理所有的URI模式的內容提供者響應(例如:http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/N

    1熱度

    1回答

    對不起,如果問題標題混淆。我只是想把所有的東西放在一起。 我有一段代碼,如: int newThread(int(*pfunc)()) { pthread_t tid; pthread_create(&tid, NULL, pfunc, NULL); int i = 0; while(threads[i] != 0 && i < MAX_NUM_THREA

    11熱度

    5回答

    我正在研究一個非常多線程的項目,並且想知道是否有辦法讓編譯器標記使用對C庫的非重入調用(例如strtok_r的strtok intsead)?如果沒有,是否有一個不可重入呼叫的列表,所以我可以定期通過我的代碼庫進行grep? 一個相關的問題是,如果有一種方法來標記3D黨庫使用的非重入調用。 我假設重入意味着線程安全的,但不一定是周圍的其他方式。在線程項目中使用非重入調用是否有很好的理由?

    5熱度

    5回答

    我在信號處理程序中調用了一些C++函數,並且我的程序被分段錯誤終止。 當我使用gdb進行檢查時,memcpy()函數是我得到SIGSEGV的地方。 我想知道如果memcpy()是否是可重入函數?

    0熱度

    1回答

    我可以在同一個進程中同時調用fprintf或fscanf中的2個線程嗎? 一個流由第一個線程寫入,由第二個線程讀取,另一個流由第一個線程讀取並由第二個線程寫入。所以,我沒有同時寫入或同時讀取同一個數據流的情況。 如果答案是否定的 - 在printf/scanf家族中是否有可重入的替代方案? 此問題在如下一些意見:Thread communication via printf and scanf (