创建多线程的第一种方式:继承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类的常用方法的更多相关文章

  1. “全栈2019”Java多线程第二章:创建多线程之继承Thread类

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  2. 几种创建线程方式Thread类和Runnable接口

    对于很多想学习java的人来说,经常听别人说线程难,其实真正理解了线程后,一点都不会觉得线程难,这里我为大家梳理下线程的创建方式吧. 一.线程的创建方式有三种 1.继承Thread类 2.实现Runn ...

  3. java中创建多线程的方式

    在java中比较常用的有三种创建多线程的方式. 方式一:继承Thread类,要重写run方法. 在MyThread类 public class MyThread extends Thread { @O ...

  4. 【C#多线程】1.Thread类的使用及注意要点

    Thread随便讲讲 因为在C#中,Thread类在我们的新业务上并不常用了(因为创建一个新线程要比直接从线程池拿线程更加耗费资源),并且在.NET4.0后新增了Task类即Async与await关键 ...

  5. Thread类的常用方法_获取线程名称的方法和设置线程名称的方法

    Thread类的常用方法 获取线程的名称: 1.使用Thread类中的方法getName() String getName() 返回该线程的名称 2.可以先获取到当前正在执行的线程,使用线程中的方法g ...

  6. Thread类的常用方法_sleep和创建多线程程序的第二种方式_实现Runnable接口

    sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就 ...

  7. Thread类的常用方法_sleep和创建多线程程序的第二种方式实现Runnable接口

    public static void sleep(long millis);//使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行). 毫秒数结束后线程继续执行 package com.yang.T ...

  8. 创建多线程的方式:继承Thread类和实现Runnable接口

    1.通过继承Thread类的方式创建多线程(这里只是简单的代码演示创建多线程的方法) package com.baozi.exer; public class ThreadDemo { public ...

  9. Thread类的常用方法----多线程基础练习

    创建多线程程序的第一种方式----继承Thread类 常用API 构造方法 public Thread() :分配一个新的线程对象. public Thread(String name) :分配一个指 ...

随机推荐

  1. pyhton中绘制多个图像

    1,在python的图像学习中,有时我们需要在同一个窗口中,显示多个图像,方便我们查看输出图像的区别. 2,在pycharm中,导入matplotlibmokuai,据说此模块来自matlab,因为没 ...

  2. mysql5.7 修改密码,修改权限

    1.修改数据库对指定用户和ip权限 a. IP为192.168.0.1的用户jack拥有对数据库datebase的表table的 增删改查权限, ,连接密码为password grant select ...

  3. 在Vue中使用iview的Select控件实现一个多级选项列表

    前言 今天项目要实现一个多级选项列表,发现iview官网上没有写这个例子,于是自己就实现了,如果对你有帮助请点个赞 ‘ * ’!! 解决方法:下面我们就来使用V-for 来定义一个二级选项列表 ,代码 ...

  4. 利用github的webhook进行自动部署

    利用github的webhook进行自动部署 github提供了webhook功能,大概意思就是,当你提交了代码,git检测到你进行了push,可以调起你一个你知道的url. 这个功能有什么用了?比如 ...

  5. 《C程序设计语言》 练习2-1

    问题描述 编写一个程序以确定分别由signed及unsigned限定的char.short.int及long类型变量的取值范围.采用打印标准头文件中的相应值以及直接计算两种方式实现 Write a p ...

  6. D. Sequence Sorting dp

    D. Sequence Sorting 题目大意:给你一个序列,有一种操作就是对所有相同的数可以挪到最前面,也可以挪到最后面,问最少操作次数. 首先,对于很多个相同的数,可以缩成两个位置,一个是就是这 ...

  7. D. Misha, Grisha and Underground 树链剖分

    D. Misha, Grisha and Underground 这个题目算一个树链剖分的裸题,但是这个时间复杂度注意优化. 这个题目可以选择树剖+线段树,时间复杂度有点高,比较这个本身就有n*log ...

  8. Java return 关键字

    一.基本概念 return一方面用在循环语句中来结束循环,另一方面用来终止函数的执行或者退出类的方法,并把控制权返回该方法的调用者.如果方法有返回类型,则return的返回该类型的值:如果没有返回值, ...

  9. jquery遍历数组、对象

    1,for循环: var arr = new Array(13.5,3,4,5,6); for(var i=0;i<arr.length;i++){ arr[i] = arr[i]/2.0; } ...

  10. 【白嫖】IT笔试面试真题讲解系列文章+视频

    视频讲解IT公司面试的高频考题~ 持续更新中,欢迎点赞转发~ 干货|名企高频考点指令篇-查看Linux硬盘空间使用情况 干货 | 名企高频考点指令篇-Linux查看CPU内存和系统版本 干货 | 名企 ...