糯米文學吧

位置:首頁 > IT認證 > SUN認證

sun認證考試輔導:java關於多線程的部分操作

SUN認證1.65W

隨着計算機技術的發展,編程模型也越來越複雜多樣化。但多線程編程模型是目前計算機系統架構的最終模型。下面yjbys小編為大家分享的是java多線程的部分操作方法,希望對同學們有所幫助!

sun認證考試輔導:java關於多線程的部分操作

  一般服務器端代碼,每次收到一個線程,一個client就會產生:

/************************ 開始監聽 **************************/

int port = 4311;

ServerSocket server = null;//服務器

Socket client = null;//客户端

try {

server = new ServerSocket(port);

} catch (IndirectionException e1) {

tln("正在監聽……");

}

while(true)

{

tln("等待客户"+i);

i++;

try {

client = pt();//開始監聽線程,接收到client

tln("客户地址:" + netAddress());

} catch (IOException e1) {

tln("正在等待客户");

}

}

  客户端代碼,啟動之後便會連接服務器,得到迴應之後便會形成socket連接

Socket clientsocket = null;

try {

clientsocket = new Socket("localhost",4311);

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

tStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

tStackTrace();

}

  socket的輸入和輸出一般用流來相互寫。

()和e(),

Object()和eObject(object)。

客户端的一個線程裏面同時new了多個ObjectOutputStream流是不允許的,其它的'流可以。ObjectOutputStream有鎖機制

  如果是一般的輸入和輸出流的話用:

DateOutputStream out = null;

DateInputStream in = null;

//獲得輸入輸出流

try {

out=new DateOutputStream(utputStream());

in=new DateInputStream(nputStream());

} catch (IOException e2) {

// TODO Auto-generated catch block

tStackTrace();

}

  如果是對象上的輸入和輸出的話用:

ObjectOutputStream out = null;

ObjectInputStream in = null;

//獲得輸入輸出流

try {

out=new ObjectOutputStream(utputStream());

in=new ObjectInputStream(nputStream());

} catch (IOException e2) {

// TODO Auto-generated catch block

tStackTrace();

}

如果複雜之後,可以是服務器啟動之後對每個客户端啟動一個線程與客户端的線程進行交互。