线程相关代码

-sleep:睡眠

public class Text01 {
public static void main(String[] args) throws InterruptedException {
// System.out.println("开始");
// Thread.sleep(2000);//线程谁睡俩秒
// System.out.print("结束");

Thread1 thread1 = new Thread1();
Thread xiaoming = new Thread(thread1,"小明");
xiaoming.start();
Thread xiaoli = new Thread(thread1,"小李");
xiaoli.start();

}
}
//俩个人吃苹果 俩秒吃一个 一人一个 100
class Thread1 implements Runnable{
int apple = 100; //共享的变量
//重写的run方法 子线程执行的方法写在run里面
public void run() {
while (true) {
synchronized (this) {
try {
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
if (apple >0) {
apple--;
//Thread.currentThread()获取当前线程 getName获取当前的名字
System.out.println(Thread.currentThread().getName() + "吃了苹果,剩下" + apple + "个");//获取当前线程

        }
        
    }
    
}

}
}
运行结果:小明小李交替出现
线程的方法:yield
public class Text02 {
public static void main(String[] args) {

}
}
class Runnable1 implements Runnable{
@Override
public void run() {
Thread.yield();//把执行的机会让给自己或者其他
System.out.println(Thread.currentThread().getName());

}

}

线程函数join():
public class Text03 {
public static void main(String[] args) {
Thread2 thread2 = new Thread2();
System.out.println("开始");
thread2.start();
try {
thread2.join(); //加入

} catch (Exception e) {
    e.printStackTrace();
}
System.out.println("结束 ");

}
}
//如果main所在的线程 运行的所需数据必须等thread2线程执行完毕
class Thread2 extends Thread{
@Override
public void run() {
System.out.println("线程2");
}
}
运行结果:
开始
线程2
结束

public class Text04 {
public static void main(String[] args) {
//优先级别比较高的 获取CPU执行的概率比较大
Thread3 thread3 = new Thread3();
thread3.setPriority(9);//设置优先级
thread3.getPriority();//获取优先级
//thread3.setName("设置名字");
thread3.isAlive();//判断是否存活
thread3.start();
Thread4 thread4 = new Thread4();
thread4.setPriority(1);
thread4.start();
}
}
class Thread3 extends Thread{
@Override
public void run() {
for (int i = 0; i <10; i++) {
System.out.println("执行一");
}
}
}
class Thread4 extends Thread{
@Override
public void run() {
for (int i = 0; i <10; i++) {
System.out.println("执行二");
}
}
}
运行结果:
先执行完线程一,然后执行线程二;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 俩个人吃苹果( 加锁 synchronized 和wait,notify/notifyall一起用 )pu...
    晨曦_hero阅读 194评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,493评论 1 15
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 2,987评论 1 18
  • 周末与一个久未见面的友人相约去乌镇,友人见我第一句话就是“感觉你皮肤比以前好了很多”,而这句话在之后的交谈中又出现...
    KAKA园阅读 180评论 0 0