线程的实现

xiaoxiao2021-02-28  45

package cn.yq.java.xiancheng2; public class Runnabl {

public static void main(String[] args) {

MyRunnable1 st = new MyRunnable1();  Thread t1 = new Thread(st, "1号窗口");  Thread t2 = new Thread(st, "2号窗口");  Thread t3 = new Thread(st, "3号窗口");  Thread t4 = new Thread(st, "4号窗口 ");  t1.setPriority(7);  t2.setPriority(8);  t3.setPriority(9);  t4.setPriority(10);  t1.start();  t2.start();  t3.start();  t4.start(); } }

============================================

package cn.yq.java.xiancheng2; public  class MyRunnable1 implements Runnable {

int tickets = 500; public void run(){   while(tickets > 0){   sale();     }   } private synchronized void sale(){  if(tickets > 0){   System.out.println(Thread.currentThread().getName() +"\t卖出 第 "+ (500 - tickets + 1)+"张票");   tickets--;     try{    Thread.sleep(500);   }catch(InterruptedException e){    e.printStackTrace();   }  } } }

================================================

package cn.yq.java.xiancheng2; public class Threa1 { public static void main(String[] args) { MyThread1 myth1=new MyThread1("Myth-01"); MyThread1 myth2=new MyThread1("Myth-02"); MyThread1 myth3=new MyThread1("Myth-03"); MyThread1 myth4=new MyThread1("Myth-04"); MyThread1 myth5=new MyThread1("Myth-05"); MyThread1 myth6=new MyThread1("Myth-06"); //同步  随机  (myth1.start报错) myth1.start(); myth2.start(); //睡眠   try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } myth3.start(); myth4.start(); myth5.start(); myth6.start(); } }

=================================================

package cn.yq.java.xiancheng2; public class MyThread1 extends Thread  { String name; int age= 10; MyThread1(String name){ this.name = name; } public void run(){ for(int i = 0;i<20;i++){ if(age>0){ System.out.println("继承Thread的线程:"+Thread.currentThread().getName()+"\tage:"+age--); } } } }

转载请注明原文地址: https://www.6miu.com/read-83187.html

最新回复(0)