java runnable接口 sleep_JAVA学习(14) 多线程-Runnable接口

java runnable接口 sleep_JAVA学习(14) 多线程-Runnable接口java多线程除了Thread类,还可以使用Runnable接口:实现Runnable的run函数,然后newThread类传入Runnable接口类,调用start启动线程sleep函数可以使用静态函数Thread.currentThread().sleep。需要注意的是只有run内部调用的函数才是在新开辟的线程中。packagecom.test.java;importjavafx.sc…

java多线程除了Thread类,还可以使用Runnable接口:实现Runnable的run函数,然后new Thread类传入Runnable接口类,调用start启动

线程sleep函数可以使用静态函数Thread.currentThread().sleep。

需要注意的是 只有run内部调用的函数才是在新开辟的线程中。

package com.test.java;

import javafx.scene.Parent;

public class Thread1 implements Runnable {

private Test1 parent =null;

public Thread1(Test1 parent) {

this.parent = parent;

// TODO 自动生成的构造函数存根

}

@Override

public void run() {

// TODO 自动生成的方法存根

while (true) {

try {

Thread.currentThread().sleep(1000);

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

parent.data++;

System.out.println(parent.data);

}

}

}

package com.test.java;

public class Test1 {

public int data = 0;

public Test1()

{

new Thread(new Thread1(this)).start();

}

public static void main(String[] args) {

new Test1();

}

}

为何需要Runnable类,有时候一个类封装完毕,后期需要加入线程可能不是很容易,实现Runnable接口会在这方面方便很多

package com.test.java;

public class Test1 implements Runnable{

public int data = 0;

public Test1()

{

new Thread(this).start();

}

public static void main(String[] args) {

Test1 test1 = new Test1();

}

@Override

public void run() {

// TODO 自动生成的方法存根

while (true) {

data++;

System.out.println(data);

try {

Thread.currentThread().sleep(100);

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

}

}

如果需要线程操作,需要保存Thread指针

package com.test.java;

public class Test1 implements Runnable{

public int data = 0;

public Thread mThread;//保存的线程变量 用来操作此线程

public Test1()

{

new OldThread().start();

mThread=new Thread(this);

mThread.start();

}

public static void main(String[] args) {

new Test1();

}

@Override

public void run() {

// TODO 自动生成的方法存根

while (true) {

data++;

System.out.println(data);

try {

Thread.currentThread().sleep(100);

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

break;

}

}

}

//用来关闭线程当计数到10

class OldThread extends Thread{

@Override

public void run() {

// TODO 自动生成的方法存根

while (true) {

if (data>10) {

mThread.interrupt();

}

try {

sleep(10);

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

}

}

}

今天的文章java runnable接口 sleep_JAVA学习(14) 多线程-Runnable接口分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10085.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注