创建多线程的方式&Thread类的常用方法
创建多线程的第一种方式:继承java.lang.Thread类

注意:1.一个线程只能执行一次start()
2.不能通过Thread实现类对象的 run()去启动一个线程
3.增加加一个线程,需要新创建一个线程的对象
Thread类的常用方法:
1.start():启动线程并执行相应的 run()方法
2.run():子线程要执行的代码放入run()方法中
3.currentThread():静态的,调取当前的线程
4.getName():获取此线程的名字
5.setName():设置此线程的名字
6.yield():调用此方法的线程释放当前的CPU执行权
7.join():在A线程中调用B线程的join()方法,表示:当执行到此方法,
A线程停止执行,直到B线程执行完毕,
A线程再接着join()之后的代码执行
8.isAlive():判断当前线程是否还存活
9.sleep(long m):显示的让当前线程睡眠m毫秒
10.线程通信:wait() notify() notifyAll()
设置线程的优先级:
getPriority():返回线程优先值
setPriority(int newPriority):改变线程的优先级
继承Thread类的匿名类的对象
TestTh
package com.aff.thread;
public class TestTh {
public static void main(String[] args) {
//继承Thread类的匿名类的对象
new Thread() {
public void run() {
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
}.start();
new Thread() {
public void run() {
for (int i = 0; i < 100; i++) {
if (i % 2 != 0) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
}.start();
}
}
创建多线程的第二种方式:通过实现的方式(只要和线程相关都离不开Runnable)
TestThread1
package com.aff.thread;
public class TestThread1 {
/* 创建线程的方式二:通过实现的方式(只要和线程相关都离不开Runnable)
*
* 对比一下继承的方式 vs 实现的方式
* 实现的方式好些:①避免了java单继承的局限性
* ②如果多个线程要操作同一份资源(或数据),更适合使用实现的方式
*/
public static void main(String[] args) {
// 3.创建一个Runnable接口实现类的对象
PrintNum p = new PrintNum();
// 想要启动一个多线程, 必须调用start()
// 4.将此对象作为形参传递给Thread类的构造器中,创建Thread类的对象,此对象即为一个线程
Thread t1 = new Thread(p);
// 5.调用start()方法:启动线程执行run()
t1.start();// 启动线程: 执行Thread对象生成时,构造器形参的,对象的run()方法
// 在创建一个线程
Thread t2 = new Thread(p);
t2.start();
}
}
// 1.创建一个实现Runnable接口的类
class PrintNum implements Runnable {
// 2.实现接口实现方法
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
}
创建多线程的方式&Thread类的常用方法的更多相关文章
- “全栈2019”Java多线程第二章:创建多线程之继承Thread类
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- 几种创建线程方式Thread类和Runnable接口
对于很多想学习java的人来说,经常听别人说线程难,其实真正理解了线程后,一点都不会觉得线程难,这里我为大家梳理下线程的创建方式吧. 一.线程的创建方式有三种 1.继承Thread类 2.实现Runn ...
- java中创建多线程的方式
在java中比较常用的有三种创建多线程的方式. 方式一:继承Thread类,要重写run方法. 在MyThread类 public class MyThread extends Thread { @O ...
- 【C#多线程】1.Thread类的使用及注意要点
Thread随便讲讲 因为在C#中,Thread类在我们的新业务上并不常用了(因为创建一个新线程要比直接从线程池拿线程更加耗费资源),并且在.NET4.0后新增了Task类即Async与await关键 ...
- Thread类的常用方法_获取线程名称的方法和设置线程名称的方法
Thread类的常用方法 获取线程的名称: 1.使用Thread类中的方法getName() String getName() 返回该线程的名称 2.可以先获取到当前正在执行的线程,使用线程中的方法g ...
- Thread类的常用方法_sleep和创建多线程程序的第二种方式_实现Runnable接口
sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就 ...
- Thread类的常用方法_sleep和创建多线程程序的第二种方式实现Runnable接口
public static void sleep(long millis);//使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行). 毫秒数结束后线程继续执行 package com.yang.T ...
- 创建多线程的方式:继承Thread类和实现Runnable接口
1.通过继承Thread类的方式创建多线程(这里只是简单的代码演示创建多线程的方法) package com.baozi.exer; public class ThreadDemo { public ...
- Thread类的常用方法----多线程基础练习
创建多线程程序的第一种方式----继承Thread类 常用API 构造方法 public Thread() :分配一个新的线程对象. public Thread(String name) :分配一个指 ...
随机推荐
- Jmeter 数据库测试参数化
1.JDBC Request 参数化 方法一.Jmeter 参数化,在 sql query 中使用变量 Jmeter 参数化,使用 csv 参数化 sql query 中使用 ${变量名} 引用 方法 ...
- CentOS联网问题
CentOS 7安装好了之后,默认是没有自动联网的,每次启动系统后,之前都是要用到的时候手动联网,最近喜欢用无界面的方式登录系统,所以联网显得比较麻烦. 为了解决这个麻烦,必须让系统启动的时候就自动连 ...
- 洛谷P5018 对称二叉树
不多扯题目 直接题解= = 1.递归 由题目可以得知,子树既可以是根节点和叶节点组成,也可以是一个节点,题意中的对称二叉子树是必须由一个根节点一直到树的最底部所组成的树. 这样一来就简单了,我们很容易 ...
- 前端【JS】,深拷贝与浅拷贝的区别及详解!
我是前端小白一枚,为了巩固知识和增强记忆,开始整理相关的知识,方便以后复习和面试的时候看看.OK,让我们进入正题~ 先说说浅拷贝和深拷贝的理解吧,个人是这样理解的:两个对象A.B, A有数据B为空,B ...
- java基础篇 之 非静态内部类
什么是非静态内部类: public class Outer { Outer() { System.out.println("我是外部类"); } class Inner { Inn ...
- Spring Cloud学习 之 Spring Cloud Ribbon(执行流程源码分析)
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 分析: 总结: 分析: 在上篇文章中,我们着重分析了RestTempla ...
- SAP登录消息提醒
1功能说明 在相应用户登录时,给其提示相关信息. 2功能实现 2.1函数实现 在函数NAVIGATION_SET_START_TCODE中注册要监听的用户和程序的事务代码,当用户登录时,将自动运行 ...
- Openwrt:编译固件提示[mktplinkfw] error: images are too big 错误
在编译mr3420的固件时,添加了luci.jamvm,但是最终编译的固件"openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin& ...
- Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)
通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...
- 出现Please make sure you have the correct access rights and the repository exists.问题解决
问题: 有一段时间没有用码云了,当输入 git push -u origin master命令出现Please make sure you have the correct access rights ...