黑马程序员技术交流社区

标题: 【郑州校区】java中支持多个线程同时运作! [打印本页]

作者: 我是色色    时间: 2017-12-29 17:10
标题: 【郑州校区】java中支持多个线程同时运作!
本帖最后由 我是色色 于 2017-12-29 17:12 编辑

public static void main(String[] args){    Runnable status_runnable=GenerateStatus();    Runnable session_runnable=MyThread(session);    Thread statusThread=Thread(status_runnable);//线程中放了任务    Thread session_thread=Thread(session_runnable);    statusThread.start();    session_thread.start();
}
两个类的实现如下,第一个是GenerateStatus

[AppleScript] 纯文本查看 复制代码
import java.util.Random;

public class GenerateStatus implements Runnable{
    private String temperature;
    private String free_Space;
    public GenerateStatus(){
       /*构造方法*/
    }
    /*线程中运行的程序*/
    public void run() {//这里因为实现接口这个必须实现
        Random random=new Random();

        while(true)
        {

            temperature =((Integer)(random.nextInt(70)+20)).toString();
            free_Space=((Integer)(random.nextInt(100)+1)).toString()+"G";
            StatusMap.put("temperature",temperature);
            StatusMap.put("free_Space",free_Space);
            System.out.println("test");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}




第二个类MyThread



[AppleScript] 纯文本查看 复制代码
javax.websocket.Session;
java.io.IOException;

MyThread Runnable {
    String ;
    String ;
    Session ;
    MyThread(Session session) IOException {
       .=session;
    }

    run() {
        (){
            {
                Thread.();
            } (InterruptedException e) {
                e.printStackTrace();
            }
            System..println();
            =StatusMap.();
            =StatusMap.();
            {
                .getBasicRemote().sendText();
                .getBasicRemote().sendText();
            } (IOException e) {
                e.printStackTrace();
            }

        }
    }
}



PS:若只需一个线程,就可以直接建立个线程使其继承Thread,在主函数中直接调用。
    Thread statusThread=new MyThread(session);    statusThread.start();//这样就可以了。但是不能多个线程同时运行!
作者: 我是色色    时间: 2017-12-29 17:12





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2