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常用方法的更多相关文章

  1. Java多线程Thread

    转自:http://www.cnblogs.com/lwbqqyumidi/p/3804883.html Java总结篇系列:Java多线程(一)   多线程作为Java中很重要的一个知识点,在此还是 ...

  2. 探Java多线程Thread类和Runnable接口之间的联系

    首先复习一下Java多线程实现机制,Java实现多线程方法有如下这么几种: 1.继承了(extends)Thread类 2.实现了(implements)Runnable接口 也就是说  有如下两种情 ...

  3. [Java多线程]-Thread和Runable源码解析

    多线程:(百度百科借一波定义) 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提 ...

  4. Java多线程Thread类了解和使用

    创建线程的两种方式 extends Thread 类 public class WelComeApp { public static void main(String[] args) { Welcom ...

  5. java 多线程--- Thread Runnable Executors

    java 实现多线程的整理: Thread实现多线程的两种方式: (1)继承 Thread类,同时重载 run 方法: class PrimeThread extends Thread { long ...

  6. java多线程的常用方法(以及注意事项)

    /* * 线程的常用方法 * 1.start(); * 2.run(); * 3.sleep(int millsecond); * 4.isAlive(); -->判断线程是否还在运行 * 5. ...

  7. [java多线程] - Thread&Runnable运用

    负载是一个很大的话题,也是一个非常重要的话题.不管是在大的互联网软件中,还是在一般的小型软件,都对负载有一定的要求,负载过高会导致服务器压力过大:负载过低又比较浪费服务器资源,而且当高请求的时候还可能 ...

  8. JAVA多线程Thread VS Runnable详解

    要求 必备知识 本文要求基本了解JAVA编程知识. 开发环境 windows 7/EditPlus 演示地址 源文件   进程与线程 进程是程序在处理机中的一次运行.一个进程既包括其所要执行的指令,也 ...

  9. [Java多线程]-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

随机推荐

  1. 使用github的srs代码,搭建 RTMP_Server

    1. 搭建RTMP服务器 1> 获取开源代码SRS. git clone https://github.com/ossrs/srs 下载源码后,按照如下文档安装https://github.co ...

  2. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

  3. dedecms首页去掉index.html怎么设置

    很多网友用IIS服务器建站,反映说dedecms首页默认多了一个/index.html,一般是没有这个后缀的,直接就**.com,那么如何将dedecms首页去掉index.html呢?很简单,服务器 ...

  4. Redis入门到高可用(十)—— Spring与Redis的整合

    1.pom文件 <!--redis--> <dependency> <groupId>org.springframework.data</groupId> ...

  5. Koala ===》编译工具 ==》Less和Sass

    官网下载网址:http://koala-app.com/index-zh.html 安装时:必须装在c盘,否则会编译报错,切记要装在c盘使用,把整体目录拖动到软件中,执行编译(success)即可 整 ...

  6. 【转】MySQL的学习--触发器

    MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 创建触发器 在MySQL中,创建触发器语法如下 ...

  7. jQuery-velocity.js 插件的简易使用

    初识Velocity动画,感觉它并没有那么强大,但是渐渐感觉它的ui动画可以让我们简易的使用到我们的项目中. Velocity动画的简介: 下载地址:http://www.julian.com/res ...

  8. EOS 开发终极神器-vscode (你绝对找不到的干货)

    https://eosfans.io/topics/323 前言:最近一直苦于EOS开发没有好用的IDE,用了很多,试了很多,都让人觉得有些差强人意.于是乎笔者在经过,长时间的查找实践中,终于找到了e ...

  9. Angular知识点

    Angular CLI 快速创建Angular 2项目和组件, 压缩打包发布. 7.创建包含html.ts.css文件的命令cd到需要创建文件的目录下面,输入如下命令 ng g c myFile 会自 ...

  10. 读取Request body方法

    一:传统方法 StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; try ...