Java多线程-----Thread常用方法
1.public Thread(Runnable target,String name)
创建一个有名称的线程对象
package com.thread.mothed;
public class ThreadMethod {
public static void main(String[] args) {
SubThread subThread = new SubThread();
Thread thread = new Thread(subThread, "线程一");
thread.start();
}
}
class SubThread implements Runnable {
@Override
public void run() {
for (int j = 1; j <= 20; j++) {
System.out.println(Thread.currentThread().getName() + ": " + j);
}
}
}
2.setName(String name)、getName()和currentThread()
- setName(String name) 设置线程名称
- getName() 获取线程名称
- currentThread() 获取当前线程对象
package com.thread.mothed;
public class ThreadMethod {
public static void main(String[] args) {
SubThread subThread = new SubThread();
Thread thread = new Thread(subThread);
thread.setName("线程二");
thread.start();
}
}
class SubThread implements Runnable {
@Override
public void run() {
for (int j = 1; j <= 20; j++) {
System.out.println(Thread.currentThread().getName() + ": " + j);
}
}
}
3.join()
把指定的线程加入到当前线程,直到指定线程执行完毕,当前线程才会继续执行
package com.thread.mothed;
public class ThreadMethod {
public static void main(String[] args) {
Thread thread=new Thread(new SubThread());
thread.start();
for(int i=1;i<=20;i++) {
System.out.println(Thread.currentThread().getName()+": "+i);
if(i==10) {
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
class SubThread implements Runnable{
@Override
public void run() {
for(int j=1;j<=20;j++) {
System.out.println(Thread.currentThread().getName()+": "+j);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
4.sleep()
使当前正在执行的线程以指定的毫秒数暂停
package com.thread.mothed;
public class ThreadMethod {
public static void main(String[] args) {
for (int i = 1; i <= 20; i++) {
System.out.println(Thread.currentThread().getName() + ": " + i);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
5.yield()
暂停当前正在执行的线程对象,让自己或者其它的线程运行
package com.thread.mothed;
public class ThreadMethod {
public static void main(String[] args) {
Thread thread=new Thread(new SubThread());
thread.start();
for(int i=1;i<=50;i++) {
System.out.println(Thread.currentThread().getName()+": "+i);
if(i==25) {
thread.yield();
System.out.println("-----------------");
}
}
}
}
class SubThread implements Runnable{
@Override
public void run() {
for(int j=1;j<=50;j++) {
System.out.println(Thread.currentThread().getName()+": "+j);
}
}
}
Java多线程-----Thread常用方法的更多相关文章
- Java多线程Thread
转自:http://www.cnblogs.com/lwbqqyumidi/p/3804883.html Java总结篇系列:Java多线程(一) 多线程作为Java中很重要的一个知识点,在此还是 ...
- 探Java多线程Thread类和Runnable接口之间的联系
首先复习一下Java多线程实现机制,Java实现多线程方法有如下这么几种: 1.继承了(extends)Thread类 2.实现了(implements)Runnable接口 也就是说 有如下两种情 ...
- [Java多线程]-Thread和Runable源码解析
多线程:(百度百科借一波定义) 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提 ...
- Java多线程Thread类了解和使用
创建线程的两种方式 extends Thread 类 public class WelComeApp { public static void main(String[] args) { Welcom ...
- java 多线程--- Thread Runnable Executors
java 实现多线程的整理: Thread实现多线程的两种方式: (1)继承 Thread类,同时重载 run 方法: class PrimeThread extends Thread { long ...
- java多线程的常用方法(以及注意事项)
/* * 线程的常用方法 * 1.start(); * 2.run(); * 3.sleep(int millsecond); * 4.isAlive(); -->判断线程是否还在运行 * 5. ...
- [java多线程] - Thread&Runnable运用
负载是一个很大的话题,也是一个非常重要的话题.不管是在大的互联网软件中,还是在一般的小型软件,都对负载有一定的要求,负载过高会导致服务器压力过大:负载过低又比较浪费服务器资源,而且当高请求的时候还可能 ...
- JAVA多线程Thread VS Runnable详解
要求 必备知识 本文要求基本了解JAVA编程知识. 开发环境 windows 7/EditPlus 演示地址 源文件 进程与线程 进程是程序在处理机中的一次运行.一个进程既包括其所要执行的指令,也 ...
- [Java多线程]-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
随机推荐
- kafka相关命令
查看kafka消费组对应的信息:./kafka-consumer-groups.sh --bootstrap-server 172.17.6.10:9092 --describe --group fr ...
- AT命令text模式发送中文
AT命令text模式发送中文 AT+CSCS=? 查询支持哪些编码 设置编码和编码格式等 AT+CMGF=1 //TEXT 模式 //AT+CSCS="UCS2" //设置编码 A ...
- push问题1
问题: $ git pushTo gitee.com:kekemuyu/xtpole.git ! [rejected] master -> master (fetch first)error: ...
- scapy 中的ARP
scapy 常用命令 ls() //查看支持的协议对象lsc() //查看函数show() //查看数据包结构send() //三层发包sr() //三层收发sr1() //三层收发只收一 timeo ...
- MySQL+InnoDB semi-consitent read原理及实现分析(转)
add by zhj: 主要讲的是在MySQL在Repeatable Read和Read Committed级别下,加锁时的不同,在Read Committed隔离级别下,只对where 中满足条件的 ...
- C++ 调用 opencv 读取视频文件列表并处理
//g++ trans_video.cpp -o trans_video `pkg-config opencv --libs --cflags` -L/usr/lib/x86_64-linux-gnu ...
- oracle中varchar2(2)存不了一个汉字的原因
错误提示: 一个汉字占了三个字节,而不是两个,这跟字符集有关. 查一下字符集:select userenv('language') from dual; 结果显示,本机Oracle的字符集是UTF-8 ...
- SpringBoot静态资源访问
在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置: Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static ...
- percona顶级项目(针对数据库)
percona顶级项目(针对数据库) 地址:https://github.com/Percona-Lab 1.mongodb_consistent_backupTool for getting con ...
- react img 被自动转成base64,无法根据当前路径来动态改变值的解决办法
项目需求,需要根据当前的图片的路径值的来(加或者减)动态改变其值: state定义如下: this.state={ basket01:0+require("../../img/egg/egg ...