我有一個進入數據庫並獲取數據的進程。的複雜性和我的問題如下:分叉進程
一些數據來自一個數據源,其餘來自其他數據源。我想知道,一旦我開始一個進程,我可以創建對象,在那裏我將轉儲所有的數據,然後叉(如C語言)。將每個進程發送到不同的數據源。
問題1:如果我做了像fork這樣的事情,它會同時更新數據的傾銷權嗎?即如果父進程從源A獲取數據並在對象O中轉儲,並且chil進程從B獲得並僅在對象O中轉儲,則O同時被填充到正確的位置?它不會使用來自A的數據和來自B的數據創建兩個對象。此外,此過程的效率僅在多處理器系統中嗎?
問題2:在Java中是否有這樣的東西?
謝謝。
子進程不會與父級共享變量;每個孩子都有自己的單獨對象O,並且沒有任何東西會進入父母的。但是線程*做*共享變量,並且可以用來做你想做的事情。 – Wyzard 2012-07-31 07:11:05
@Wyzard線程與forkde進程有什麼不同。如果你能告訴我。謝謝。 – Kraken 2012-07-31 07:12:42
過程是相互隔離的;他們可以:只能以有限的方式進行交互,例如[信號](http://en.m.wikipedia.org/wiki/Unix_signal)和[套接字](http://en.m.wikipedia.org/wiki /:Berkeley_sockets)。線程是單個進程的一部分,因此它們都可以直接訪問該進程的內存。 – Wyzard 2012-07-31 07:31:46