创建多线程程序的第一种方式_创建Thread类的子类
创建多线程程序的第一种方式:创建Thread类的子类
java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类
实现步骤:
      1.创建一个Thread类的子类
      2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么)
      3.创建Thread类的子类对象
      4.调用Thread类中的方法start方法,开启新的线程,执行run方法
           void start()使该线程开始执行;Java虚拟机调用该线程的run方法。
           结果是两个线程并发地运行;当前线程(main线程)和另一个线程(创建的新线程,执行其run方法)
           多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。
      java程序属于抢占式调度,那个线程的优先级高,哪个线程优先执行;同一个优先级,随机选择一个执行
// 1.创建一个Thread类的子类
public class MyThread extends Thread{
// 2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么) @Override
public void run() {
for (int i = 0; i <20 ; i++) {
System.out.println("run"+i);
}
}
}
public class Demo02Thread {
    public static void main(String[] args) {
        //  3.创建Thread类的子类对象
        MyThread mt = new MyThread();
        //  4.调用Thread类中的方法start方法,开启新的线程,执行run方法
        mt.start();
        for (int i = 0; i <20 ; i++) {
            System.out.println("main"+i);
        }
    }
}
创建多线程程序的第一种方式_创建Thread类的子类的更多相关文章
- 主线程和创建多线程程序的第一种方式_创建Thread类的子类
		
/** * 主线程:执行主方法的线程(main) * 单线程程序:在java程序中只有一个线程 * 执行从main方法开始,从上倒下依次执行 */ public class Demo01MainThr ...
 - Thread类的常用方法_sleep和创建多线程程序的第二种方式_实现Runnable接口
		
sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就 ...
 - Thread类的常用方法_sleep和创建多线程程序的第二种方式实现Runnable接口
		
public static void sleep(long millis);//使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行). 毫秒数结束后线程继续执行 package com.yang.T ...
 - 创建线程的两种方式:继承Thread类和实现Runnable接口
		
第一种方式:继承Thread类 步骤:1.定义类继承Thread 2.覆写Threa类的run方法. 自定义代码放在run方法中,让线程运行 3.调用线程的star方法, 该线程有两个作用:启动线程, ...
 - 49、多线程创建的三种方式之继承Thread类
		
继承Thread类创建线程 在java里面,开发者可以创建线程,这样在程序执行过程中,如果CPU空闲了,就会执行线程中的内容. 使用Thread创建线程的步骤: 1.自定义一个类,继承java.lan ...
 - 创建线程的一般方式和匿名内部类方式对比——继承thread类,重写run()方法
		
第一种:继承thread类,重写run()方法 一般方式:Demo01.java /** * 创建线程的第一种方式:继承thread类,重写run()方法 * * @author :liuqi * @ ...
 - iReport+jasperreport创建子表的几种方式(1)
		
在制作报表的过程中,子表是不可缺少的.今天就研究了一下制作子表的几种方式 一.连接数据库创建子表 以MySQL为例: 我的数据源数据库中的表 watermark/2/text/aHR0cDovL2Js ...
 - 创建多线程的第一种方式——创建Thread子类和重写run方法
		
创建多线程的第一种方式——创建Thread子类和重写run方法: 第二种方式——实现Runnable接口,实现类传参给父类Thread类构造方法创建线程: 第一种方式创建Thread子类和重写run方 ...
 - Spring整合Struts2框架的第一种方式(Action由Struts2框架来创建)。在我的上一篇博文中介绍的通过web工厂的方式获取servcie的方法因为太麻烦,所以开发的时候不会使用。
		
1. spring整合struts的基本操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10140588.html,这里面将spring与struts2 ...
 
随机推荐
- 源码解析Synchronous Queue 这种特立独行的队列
			
摘要:Synchronous Queue 是一种特立独行的队列,其本身是没有容量的,比如调用者放一个数据到队列中,调用者是不能够立马返回的,调用者必须等待别人把我放进去的数据消费掉了,才能够返回. 本 ...
 - Java Web实现用户登录功能
			
java web 学习记录一下 mvc结构实现mysql 连接 什么是mvc MVC是模型(model).视图(view).控制(controller)这三个单词上的首字母组成.它是一种应用模型,它的 ...
 - k8s client-go源码分析 informer源码分析(3)-Reflector源码分析
			
k8s client-go源码分析 informer源码分析(3)-Reflector源码分析 1.Reflector概述 Reflector从kube-apiserver中list&watc ...
 - kvm 虚拟化技术 1.2  之配置网络桥接
			
实验一:配置网路桥接模式 默认kvm的网络是NAT模式,一般生产环境用桥接模式,把虚拟机改成桥接模式 1.查看是否安装网桥设备 [root@kibana opt]# rpm -qa|grep brid ...
 - kvm  虚拟化技术 1.1  安装
			
1.·VMware开启虚拟化设置 2.安装一些虚拟化的必备插件 yum install -y qemu-kvm qemu-kvm-tools libvirt virt-manager virt-ins ...
 - 零基础学Java第二节(运算符、输入、选择流程控制)
			
本篇文章是<零基础学Java>专栏的第二篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 第一章 运算符 1.1 算术运算符的概述和用法 运算符 对常量和变 ...
 - 无线:WEP
			
WEP是Wired Equivalent Privacy的简称,有线等效保密(WEP)协议是对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线网络.不过密码分析学家已经找出 W ...
 - Spring Security之用户名+密码登录
			
自定义用户认证逻辑 处理用户信息获取逻辑 实现UserDetailsService接口 @Service public class MyUserDetailsService implements Us ...
 - 463. Island Perimeter - LeetCode
			
Question 463. Island Perimeter Solution 题目大意:给出一个二维数组1表示陆地0表示海,求陆地的周长 思路: 重新构造一张地图grid2即一个二维数组,比原数组大 ...
 - 每日一题20180401-Linux
			
一.题目 1.1 在mysql命令行临时开启自动补全 1.2 通过shell脚本打印乘法口诀表 二.答案 2.1 # auto-rehash:读取表信息和列信息,可以在连上终端后开启tab补齐功能 # ...