sleepjava的簡單介紹

本文目錄一覽:

java中的sleep和wait的區別

sleep和wait的區別:

1、sleep的意思是:睡,睡覺,睡眠。

2、wait的意思是:等候,推遲,延緩等待,耽擱,伺候用餐。

拓展資料

sleep的用法

1、They were exhausted from lack of sleep

由於缺乏睡眠,他們非常疲憊。

2、During the car journey, the baby slept

坐車來的路上,寶寶睡著了。

3、I think he may be ready for a sleep soon.

我想他也許很快就要睡一覺了。

4、I can’t get to sleep with all that singing.

那些歌聲攪得我無法入睡。

5、I didn’t lose too much sleep over that investigation.

我並不太擔心那個調查。

wait

1、I walk to a street corner and wait for the school bus

我走到街角等校車。

2、There’ll be a car waiting for you

會有輛汽車等你。

3、I want to talk to you, but it can wait

我想和你談談,但可以晚點再說。

4、If you think this all sounds very exciting, just wait until you read the book

如果你覺得所有這些聽起來令人興奮,那就等著去讀這本書吧。

5、’Wait a minute!’ he broke in. ‘This is not giving her a fair hearing!’

「等一下,」他插嘴說,「這沒有給她一個公平的解釋機會!」

java 中sleep()方法或者wait()方法的使用

簡單說:sleep由線程自動喚醒,wait必須顯示用代碼喚醒。

sleep是Thread類的靜態方法。sleep的作用是讓線程休眠制定的時間,在時間到達時恢復,也就是說sleep將在接到時間到達事件事恢複線程執行,例如:

try{

System.out.println(“I’m going to bed”);

Thread.sleep(1000);

System.out.println(“I wake up”);

}

catch(IntrruptedException e) {

}

wait是Object的方法,也就是說可以對任意一個對象調用wait方法,調用wait方法將會將調用者的線程掛起,直到其他線程調用同一個對象的notify方法才會重新激活調用者,例如:

//Thread 1

try{

obj.wait();//suspend thread until obj.notify() is called

}

catch(InterrputedException e) {

}

java sleep()

下面分別是伺服器端和客戶端的代碼,先運行伺服器端,再運行客戶端

伺服器端:

import java.awt.event.*;

import java.io.*;

import java.net.*;

import java.util.*;

import java.util.List;

import javax.swing.*;

public class ChatServer {

public static void main(String[] args) throws Exception {

ServerSocket ss = new ServerSocket(9000);

ServerFrame sf = new ServerFrame();

sf.launchFrame();

List list = new ArrayList(); // 創建數組

while (true) { // 開啟多線程

Socket s = ss.accept();

list.add(s);

Thread t = new ServerThread(s, list, sf);

t.start();

}

}

}

class ServerThread extends Thread { // 創建線程類

Socket s;

BufferedReader in;

PrintWriter out;

ServerFrame sf;

public ServerThread(Socket s, List list, ServerFrame sf) {

this.s = s;

this.sf = sf;

sf.sokectList = list;

try {

in = new BufferedReader(new InputStreamReader(s.getInputStream()));

out = new PrintWriter(s.getOutputStream());

} catch (IOException e) {

e.printStackTrace();

}

}

public void run() {

while (true) {

try {

String str = in.readLine();

if (str == null)

continue;

sf.jta.append(“接收到:” + str + “\n”);

} catch (IOException e) {

return;

}

}

}

}

class ServerFrame {

List sokectList;

JTextField jtf;

JTextArea jta;

PrintWriter out;

public void launchFrame() {

JFrame frame = new JFrame(“伺服器端”); // 創建 frame對象

frame.setSize(400, 300); // 設置fram大小

frame.setLocation(300, 250);

jta = new JTextArea();

jta.setEditable(false);

jtf = new JTextField();

jtf.addActionListener(new ActionListener() { // 註冊監聽器

public void actionPerformed(ActionEvent arg0) {

send();

}

});

frame.getContentPane().add(new JScrollPane(jta));

frame.getContentPane().add(jtf, “South”);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

public void send() { // 輸出文字

String text = this.jtf.getText();

this.jtf.setText(“”);

if(sokectList==null) {

jta.append(“無客戶端,發送失敗:” + text + “\n”);

return;

}

jta.append(“發送指令:” + text + “\n”);

Iterator it = sokectList.iterator();

while (it.hasNext()) {

Socket socket = (Socket) (it.next());

try {

out = new PrintWriter(socket.getOutputStream());

} catch (IOException e) {

// TODO Auto-generated catch block

jta.append(“與客戶端連接失敗!\n”);

continue;

}

out.println(text);

out.flush();

}

}

}

客戶端:

import java.awt.BorderLayout;

import java.awt.Frame;

import java.awt.Panel;

import java.awt.TextArea;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import javax.swing.*;

public class ChatClient {

public static void main(String[] args) {

ChatClient cc = new ChatClient();

while(true)

cc.receive();

}

static boolean boo;

Frame clientFrame;

Panel topPanel;

TextArea topTextArea;

Socket s;

BufferedReader in;

PrintWriter out;

public ChatClient() {

this.clientFrame = new Frame(“客戶端”);

this.clientFrame.setBounds(350, 250, 150, 250);

this.clientFrame.setResizable(false);

this.clientFrame.setVisible(true);

this.topPanel = new Panel();

this.clientFrame.setBounds(350, 250, 150, 200);

this.topTextArea = new TextArea();

this.topPanel.add(this.topTextArea);

this.clientFrame.add(this.topPanel, BorderLayout.NORTH);

this.clientFrame.pack();

this.clientFrame.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

int var = JOptionPane.showConfirmDialog(null, “退出?”,

“退出”, JOptionPane.OK_CANCEL_OPTION);

if (var == JOptionPane.OK_OPTION)

System.exit(0);

}

});

try {

s = new Socket(“127.0.0.1”, 9000);//設置埠

in = new BufferedReader(new InputStreamReader(s.getInputStream()));//創建對象in

out = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));//創建對象out

} catch(UnknownHostException e) {//捕捉異常

e.printStackTrace();

} catch(ConnectException e) {

JOptionPane.showMessageDialog(null, “與伺服器連接失敗,請確認伺服器是否已經開啟!”);

System.exit(-1);

} catch(IOException e) {

e.printStackTrace();

}

}

public void receive() { // 讀信息

try {

String text = in.readLine();

if(“STOP”.equals(text.toUpperCase())) {

if(boo) {

this.topTextArea.append(“結束髮送!\n”);

boo = false;

}

return;

}

if(“START”.equals(text.toUpperCase())) {

boo = true;

this.topTextArea.append(“開始向伺服器發送數據:\n”);

new SendThread(this).start();

return;

}

this.topTextArea.append(“接收到無效指令:” + text + “\n”);

} catch (SocketException e) {

JOptionPane.showMessageDialog(null, “與伺服器斷開連接!”);

System.exit(-1);

} catch (IOException e) {

e.printStackTrace();

return;

}

}

public void send() {

while(boo) {

String str = Math.random() + “”;

out.println(str);

out.flush();

this.topTextArea.append(“發送:” + str + “\n”);

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

class SendThread extends Thread {

ChatClient cc;

SendThread(ChatClient cc) {

this.cc = cc;

}

@Override

public void run() {

// TODO Auto-generated method stub

cc.send();

}

}

java中的sleep是什麼意思

SLEEP,英語單詞,名詞、動詞,作名詞時意為「睡眠,人名;(英)斯利普」,作動詞時意為「睡,睡覺」。

單詞發音英[sli_p]美[sli_p]基本用法sleep用作動詞的基本意思是「睡眠」,也可作「為(某數量的人)提供床位」解。

sleep與介詞to連用時一般都省略冠詞。sleep用作名詞的意思是「睡眠」,是不可數名詞;加不定冠詞時,表示「一段時間的睡眠」。

sleep的進行時可以表示按計劃、安排或打算即將發生的動作,這時句中往往有表示將來的時間狀語或特定的上下文。一站式出國留學攻略

java sleep(1000)和wait(1000)有區別嗎?

第一種解釋:\x0d\x0a\x0d\x0a功能差不多,都用來進行線程式控制制,他們最大本質的區別是:sleep()不釋放同步鎖,wait()釋放同步縮. \x0d\x0a \x0d\x0a還有用法的上的不同是:sleep(milliseconds)可以用時間指定來使他自動醒過來,如果時間不到你只能調用interreput()來強行打斷;wait()可以用notify()直接喚起.\x0d\x0a\x0d\x0a第二種解釋:\x0d\x0a\x0d\x0asleep是Thread類的靜態方法。sleep的作用是讓線程休眠制定的時間,在時間到達時恢復,也就是說sleep將在接到時間到達事件事恢複線程執行,例如:\x0d\x0a\x0d\x0atry{\x0d\x0aSystem.out.println(“I’m going to bed”);\x0d\x0aThread.sleep(1000);\x0d\x0aSystem.out.println(“I wake up”);\x0d\x0a}\x0d\x0acatch(IntrruptedException e) {\x0d\x0a}\x0d\x0a\x0d\x0await是Object的方法,也就是說可以對任意一個對象調用wait方法,調用wait方法將會將調用者的線程掛起,直到其他線程調用同一個對象的notify方法才會重新激活調用者,例如:\x0d\x0a\x0d\x0a//Thread 1\x0d\x0a\x0d\x0atry{\x0d\x0aobj.wait();//suspend thread until obj.notify() is called\x0d\x0a}\x0d\x0acatch(InterrputedException e) {\x0d\x0a}\x0d\x0a\x0d\x0a第三種解釋:\x0d\x0a\x0d\x0a這兩者的施加者是有本質區別的. \x0d\x0asleep()是讓某個線程暫停運行一段時間,其控制範圍是由當前線程決定,也就是說,在線程裡面決定.好比如說,我要做的事情是 “點火-燒水-煮麵”,而當我點完火之後我不立即燒水,我要休息一段時間再燒.對於運行的主動權是由我的流程來控制.\x0d\x0a\x0d\x0a而wait(),首先,這是由某個確定的對象來調用的,將這個對象理解成一個傳話的人,當這個人在某個線程裡面說”暫停!”,也是 \x0d\x0athisOBJ.wait(),這裡的暫停是阻塞,還是”點火-燒水-煮飯”,thisOBJ就好比一個監督我的人站在我旁邊,本來該線\x0d\x0a程應該執行1後執行2,再執行3,而在2處被那個對象喊暫停,那麼我就會一直等在這裡而不執行3,但這個流程並沒有結束,我一直想去煮飯,但還沒被允許,\x0d\x0a \x0d\x0a直到那個對象在某個地方說”通知暫停的線程啟動!”,也就是thisOBJ.notify()的時候,那麼我就可以煮飯了,這個被暫停的線程就會從暫停處\x0d\x0a繼續執行.\x0d\x0a\x0d\x0a其實兩者都可以讓線程暫停一段時間,但是本質的區別是一個線程的運行狀態控制,一個是線程之間的通訊的問題\x0d\x0a\x0d\x0a在java.lang.Thread類中,提供了sleep(),\x0d\x0a而java.lang.Object類中提供了wait(), notify()和notifyAll()方法來操作線程\x0d\x0asleep()可以將一個線程睡眠,參數可以指定一個時間。\x0d\x0a而wait()可以將一個線程掛起,直到超時或者該線程被喚醒。\x0d\x0a wait有兩種形式wait()和wait(milliseconds).\x0d\x0asleep和wait的區別有:\x0d\x0a 1,這兩個方法來自不同的類分別是Thread和Object\x0d\x0a 2,最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。\x0d\x0a 3,wait,notify和notifyAll只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在\x0d\x0a 任何地方使用\x0d\x0a synchronized(x){\x0d\x0a x.notify()\x0d\x0a //或者wait()\x0d\x0a }\x0d\x0a 4,sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常

java sleep方法

調用方法:Thread.sleep(0);

括弧內輸入要睡眠的毫秒數(1秒等於1000毫秒),調用這個方法會拋出異常,需要拋出或處理,它在睡眠被打斷時發生。

原創文章,作者:KEME,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141370.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KEME的頭像KEME
上一篇 2024-10-04 00:18
下一篇 2024-10-04 00:18

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智慧,Python都扮演著重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27
  • 2的32次方-1:一個看似簡單卻又複雜的數字

    對於計算機領域的人來說,2的32次方-1(也就是十進位下的4294967295)這個數字並不陌生。它經常被用來表示IPv4地址或者無符號32位整數的最大值。但實際上,這個數字卻包含…

    編程 2025-04-27
  • 製作一個簡單的管理系統的成本及實現

    想要製作一個簡單的管理系統,需要進行技術選型、開發、測試等過程,那麼這個過程會花費多少錢呢?我們將從多個方面來闡述製作一個簡單的管理系統的成本及實現。 一、技術選型 當我們開始思考…

    編程 2025-04-27

發表回復

登錄後才能評論