当前位置: 首页 > news >正文

凡科网站怎么做友情链接凡科小程序商城

凡科网站怎么做友情链接,凡科小程序商城,网站项目开发建设合同,注册公司流程和费用lThread的常用方法 1.构造器 Thread提供的常见构造器说明public Thread(String name)可以为当前线程指定名称public Thread(Runnable target)封装Runnable对象成为线程对象public Thread(Runnable target,String name)封装Runnable对象成为线程对象,并指定线程名称…

Thread的常用方法

1.构造器

Thread提供的常见构造器说明
public Thread(String name)可以为当前线程指定名称
public Thread(Runnable target)封装Runnable对象成为线程对象
public Thread(Runnable target,String name)封装Runnable对象成为线程对象,并指定线程名称
public class Demo01 {public static void main(String[] args) {//public Thread(String name); 创建线程对象并设置线程名称MyThread t1 = new MyThread("火车");t1.start();//public Thread(Runnable target); 封装Runnable对象成为线程对象Thread t2 = new Thread(new MyRunnable(), "高铁");t2.start();}
}//线程实现方式一
class MyThread extends Thread {public MyThread(){}//子类将名称直接交给父类的构造器初始化public MyThread(String name) {super(name);}@Overridepublic void run() {//public void run(); 封装线程任务的方法for (int i = 1; i <= 10; i++) {//public String getName(); 获取线程名称System.out.println(getName() + ":" + i);}}
}//线程实现方式二
class MyRunnable implements Runnable {@Overridepublic void run() {for (int i = 1; i <= 10; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}
}

2.方法

Thread提供的常用方法说明
public void run()线程的任务方法
public void start()启动线程
public String getName()获取当前线程的名称,线程名称默认是Thread-索引
public void setName(String name)为线程设置名称
public static Thread currentThread()获取当前线程的执行对象
public static void sleep(long time)让当前执行的线程休眠多少毫秒后,再继续执行
public final void join()让调用当前这个方法的线程先执行完
public class Demo02 {public static void main(String[] args) {MyThread t1 = new MyThread();//public void setName(); 设置线程名称t1.setName("火车");//public void start(); 启动线程t1.start();//public Thread(Runnable target); 封装Runnable对象成为线程对象Thread t2 = new Thread(new MyRunnable(), "高铁");t2.start();}
}//线程实现方式一
class MyThread extends Thread {@Overridepublic void run() {//public void run(); 封装线程任务的方法for (int i = 1; i <= 10; i++) {//public String getName(); 获取线程名称System.out.println(getName() + ":" + i);}}
}//线程实现方式二
class MyRunnable implements Runnable {@Overridepublic void run() {for (int i = 1; i <= 10; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}
}
public static void sleep(long time)让当前执行的线程休眠多少毫秒后,再继续执行
public final void join()让调用当前这个方法的线程先执行完
public class Demo03 {public static void main(String[] args) throws InterruptedException {//public static void sleep(long time); 让当前执行的线程,休眠指定毫秒后继续运行
//        System.out.println("测试开始");
//        Thread.sleep(3000);
//        System.out.println("测试开始");//public final void join(); 让调用这个方法的线程,启动后优先执行完毕//Java中如何控制三个线程,按指定顺序执行完毕(三个方法启动后都加join,调整顺序即可实现)Thread t3 = new Thread(() -> {for (int i = 1; i <= 5; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}, "线程3");t3.start();t3.join(); Thread t2 = new Thread(() -> {for (int i = 1; i <= 5; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}, "线程2");t2.start();t2.join(); Thread t1 = new Thread(() -> {for (int i = 1; i <= 5; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}, "线程1");t1.start();t1.join(); }
}

3.补充

(1)线程分为两种调度模型

  • 分时调度,所有线程轮流使用CPU,平均分配时间

  • 抢占式调度:优先级高的获取CPU时间相对长一些(不是绝对),如果优先级相同会随机选择,Java中线程的调度模型为抢占式调度,在同一时刻,线程抢夺CPU的执行权是随机的

  • public final void setDaemon(boolean on):设置当前线程为守护线程,当其他线程执行完毕了,守护线程也就跟着停止了,但不是立刻

    public class Demo03 {public static void main(String[] args) {//public final void setDaemon(boolean on); 设置当前线程为守护线程new Thread(() -> {for (int i = 1; i <= 10; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}, "线程1").start();Thread t2 = new Thread(() -> {for (int i = 1; i <= 100; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}, "线程2");//public final void setDaemon(boolean on); 设置当前线程为守护线程t2.setDaemon(true);t2.start();}
    }
    
  • public final void setPriority():设置线程优先级

  • public final int getPriority():获取线程优先级

    线程优先级高仅是抢到CPU的执行权相对几率大,不是绝对的

    public static final int MIN_PRIORITY=1;最低

    public static final int NORM_PRIORITY=5;默认

    public static final int MAX_PRIORITY=10;最高

public class Demo03 {public static void main(String[] args) {Thread t1 = new Thread(() -> {for (int i = 1; i <= 10; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}, "飞机");//public final void setPriority();设置线程优先级//t1.setPriority(100); //数值超出了范围,抛异常 IllegalArgumentExceptiont1.setPriority(10);t1.start();Thread t2 = new Thread(() -> {for (int i = 1; i <= 10; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}}, "大炮");//System.out.println(t2.getPriority()); //默认是5t2.start();}
}
http://www.yayakq.cn/news/250935/

相关文章:

  • 数字域名做网站移动应用开发难学吗
  • 免费的图片做视频在线观看网站如何开网店新手入门拼多多
  • 广州安尔捷做的网站好吗网站怎样绑定域名
  • 东莞seo网站建设公司一个网站可以有几个域名
  • 深圳商城网站建设公司网页设计技术学什么
  • 广州机械网站开发单页面网站好优化吗
  • .net企业门户网站开发企业网站设计目的和意义
  • 苏州做企业网站建设做热区的网站
  • 甘肃网站建设网站制作政务网站建设需求
  • 徐州cms建站wordpress 搜索 自定义字段
  • 泉州做网站优化的公司.net 开源 企业网站
  • 惠州市建设规划局网站ens域名注册
  • 设计招聘网站百度助手免费下载
  • 视频解析网站建设介绍重庆网页设计
  • 建设银行 网站西宁做网站seo
  • 上海南京东路网站建设如何做网站seo
  • 网站优化的方式有哪些iis不能新建网站
  • 青岛企业建设网站企业wordpress能做大么
  • 网站建设初步课程介绍西安网络公司做网站
  • 网站的建设与应用西安网站开发建
  • php mysql网站开发教程整站优化系统厂家
  • 电商网站建设好么产品开发的流程包括哪几个阶段
  • 制作网站培训网站怎么做最吸引人
  • 江门网站如何制作公司注册资金要求
  • 县总工会网站建设情况超市网站设计
  • 建设工程质量检测网站邯郸如何做企业网站
  • 网站二维码怎么制作建设银行的网站怎么打开
  • 如何加强省市级政门户网站建设门户网站官网有哪些
  • 网站 html 作用项目管理软件project
  • 东营网站的优化怎么样在网站上做跳转