22. 多線程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么?
答:多線程有三種實(shí)現(xiàn)方法,分別為:
① 實(shí)現(xiàn)Runnable接口,覆蓋Run()方法。
、 繼承Thread,覆蓋Run()方法。
、 繼承TimerTask,覆蓋Run()方法。
同步的實(shí)現(xiàn)是在方法前加synchronized,在調(diào)用wait()和notify()。
23. 請說出你所知道的線程同步的方法
答:1. synchronized 方法:通過在方法聲明中加入 synchronized關(guān)鍵字來聲明 synchronized 方法。
2. synchronized 塊:通過 synchronized關(guān)鍵字來聲明synchronized 塊。
24. 當(dāng)一個線程進(jìn)入一個對象的一個synchronized方法后,其它線程是否可進(jìn)入此對象的其它方法?
答:不可以。synchronized 方法都必須獲得調(diào)用該方法的類實(shí)例的鎖方能執(zhí)行,否則所屬線程阻塞,方法一旦執(zhí)行,就獨(dú)占該鎖,直到從該方法返回時才將鎖釋放,此后被阻塞的線程才能獲得該鎖,重新進(jìn)入可執(zhí)行狀態(tài)。
25. 用JAVA SOCKET編程,實(shí)現(xiàn)簡單的Echo功能
如: 客戶端從鍵盤輸入 hi (當(dāng)用戶輸出exit 退出程序),服務(wù)端響應(yīng)為 hi(服務(wù)器要求為多線程)
解:服務(wù)器程序:
import java.io.*;
import java.net.*;
public class MyServer extends Thread{
private Socket cq ;
public MyServer(Socket cq)
{
this.cq = cq;
}
public void run()
{
try
{
BufferedReader in=new BufferedReader(new InputStreamReader(cq.getInputStream()));
PrintWriter out=new PrintWriter(cq.getOutputStream());
while(true)
{
String str=in.readLine();
System.out.println(str);
out.println("message: "+str);
out.flush();
if(str.equals("exit"))
break;
}
}
catch(IOException e)
{
System.out.println(e.message());
}
}
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(8009);
while(true)
{
Socket s=server.accept();
new MyServer(s).start();
}
}
}
客戶端程序:
import java.net.*;
import java.io.*;
public class MyClient{
public static void main(String[] args)throws Exception
{
Socket server=new Socket("localhost",8009);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
String str=br.readLine();
out.println(str);
out.flush();
if(str.equals("exit")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
更多信息請?jiān)L問:考試吧計算機(jī)等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |