在多個(gè)線程的使用中,可以使用管道流把線程進(jìn)行連接。這里有的人會(huì)把它用到一個(gè)線程中,是行不通的。管道流分為兩種類型:字節(jié)流和字符流。在使用上有諸多需要注意的地方,今天從最基礎(chǔ)的線程實(shí)例學(xué)起,這也是java管道流簡單的用法,下面就java管道流發(fā)送線程的基礎(chǔ)概念、使用、實(shí)例為大家?guī)碓敿?xì)內(nèi)容分享。
1.概念
管道流主要用于連接兩個(gè)線程的通信。管道流也分為字節(jié)流(PipedInputStream、PipedOutputStream)和字符流(PipedReader、PipedWriter)。
2.使用事項(xiàng)
第一,管道流僅用于多個(gè)線程之間傳遞信息,若用在同一個(gè)線程中可能會(huì)造成死鎖;
第二,管道流的輸入輸出是成對(duì)的,一個(gè)輸出流只能對(duì)應(yīng)一個(gè)輸入流,使用構(gòu)造函數(shù)或者connect函數(shù)進(jìn)行連接;
第三,一對(duì)管道流包含一個(gè)緩沖區(qū),其默認(rèn)值為1024個(gè)字節(jié),若要改變緩沖區(qū)大小,可以使用帶有參數(shù)的構(gòu)造函數(shù);
第四,管道的讀寫操作是互相阻塞的,當(dāng)緩沖區(qū)為空時(shí),讀操作阻塞;當(dāng)緩沖區(qū)滿時(shí),寫操作阻塞;
第五,管道依附于線程,因此若線程結(jié)束,則雖然管道流對(duì)象還在,仍然會(huì)報(bào)錯(cuò)“read dead end”;
第六,管道流的讀取方法與普通流不同,只有輸出流正確close時(shí),輸出流才能讀到-1值。
3.實(shí)例
以上就是java管道流發(fā)送線程的方法,作為最基礎(chǔ)的管道流操作線程方法,是需要每個(gè)初學(xué)者需要掌握的,理解完基礎(chǔ)內(nèi)容后就可以運(yùn)行代碼部分。更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢想。