「java读写sleep」java读写锁实现原理

博主:adminadmin 2023-01-23 10:33:08 365

本篇文章给大家谈谈java读写sleep,以及java读写锁实现原理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中的sleep是什么意思

SLEEP,英语单词,名词、动词,作名词时意为“睡眠,人名;(英)斯利普”,作动词时意为“睡,睡觉”。

单词发音英[sli_p]美[sli_p]基本用法sleep用作动词的基本意思是“睡眠”,也可作“为(某数量的人)提供床位”解。

sleep与介词to连用时一般都省略冠词。sleep用作名词的意思是“睡眠”,是不可数名词;加不定冠词时,表示“一段时间的睡眠”。

sleep的进行时可以表示按计划、安排或打算即将发生的动作,这时句中往往有表示将来的时间状语或特定的上下文。一站式出国留学攻略

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()用法

th1.sleep(10); 这是让th1线程暂停10毫秒

如果你想启动th1的话

th1.start();

当调用了start方法就代表这个线程开始启动

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()方法

1.所有这些语句都必须在方法里面写,类里面只能存在属性和方法。不存在语句

2.thread.sleep()需要捕捉异常,加try/catch

关于java读写sleep和java读写锁实现原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。