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源码解析 前面 ...
随机推荐
- SQL函数汇总大全
聚合函数对一组值计算后返回单个值.除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null).所有的聚合函数均为确定性函数.即任何时候使用一组相同的输入值调用聚合函数执行后的返 ...
- TZOJ:最大连续子序列
描述 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K.最大连续子 ...
- 数据库使用:sql server/mysql/sqlite
本科学过sql server数据库,上研刚开始在做研究时自己想点子自己做,为了简便使用了论文中看到的一个简易数据库sqlite存储使用数据.后来随着数据量的增长,以及数据处理的需求sqlite速度明显 ...
- 【数据库】left join(左关联)、right join(右关联)、inner join(自关联)的区别
left join(左关联).right join(右关联).inner join(自关联)的区别 用一张图说明三者的区别: 总结: left join(左联接) 返回包括左表中的所有记录和右表中关联 ...
- IIS下实现帝国CMS搜索页伪静态
前面ytkah讲了apache下帝国CMS搜索页伪静态实现方法,网友说服务器是用IIS,那么IIS下如何实现帝国CMS搜索页伪静态呢?首先得先有URL重写插件,下载地址:http://www.iis. ...
- docker+redis安装与配置,主从+哨兵模式
docker+redis安装与配置 docker安装redis并且使用redis挂载的配置启动 1.拉取镜像 docker pull redis:3.2 2.准备准备挂载的目录和配置文件 首先在/do ...
- Error, some other host already uses address 192.168.0.202错误解决方法
Error, some other host already uses address 192.168.0.202错误解决方法 今天配置虚拟机网卡的时候遇到错误:Error, some other h ...
- SUDO安全委派和安全模块
sudo更换身份 su 切换身份 使用su 切换身份必须首先直到被切换成用户的密码 如: su root 就必须要知道root的密码 这种机制安全性不高,容易泄露管理员密码 1. sudo ...
- vue中使用promise
init1(){ return new Promise((resolve, reject) => { let data={ dateStr:this.time }; api.get('url', ...
- 由swap引发的关于按值传递和引用传递的思考与总结
函数的参数传递定义:在调用一个函数时,将实参传递给形参. C++中函数的参数传递有按值传递.地址传递和引用传递3种方式.注意:地址也是一种值,按值传递和按地址传递都是单向的值传递方式,即形参都不会回传 ...