介绍一些多线程中的常用方法:

        //启动方法
a.start(); //返回代码正在被哪个线程调用的信息
a.currentThread(); //返回线程的名字
a.currentThread().getName(); //判断线程是否处于存活状态
a.isAlive(); //线程延迟 单位毫秒
a.sleep(); //取得线程的唯一标识
a.getId();

暂停继续:

//让线程以毫秒进入阻塞状态,等到时间一过,正常运行
a.sleep(300);

suspend()和 resume()方法:

  线程的暂停和恢复,使用 suspend()方法使线程进入阻塞状态,不可以自动恢复,可使用resume()方法将线程唤醒。

yield()方法:

  yield()方法的作用是放弃当前CPU资源,将他让给其他的任务去使用,但是放弃的时间是不确定的,有可以刚刚放弃,马上又得到CPU的使用时间。

  下面写段代码举个例子:

不使用yield()方法执行:

public class Test01 extends Thread {

    @Override
public void run() {
super.run();
long beginTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
System.out.println(i++);
}
long endTime = System.currentTimeMillis();
System.out.println("执行完成,用时:" + (endTime - beginTime) + "毫秒!");
} public static void main(String[] args) {
Test01 thread = new Test01();
thread.start();
}
} //打印结果 9990
9992
9994
9996
9998
执行完成,用时:37毫秒!

使用yield()方法执行:

public class Test01 extends Thread {

    @Override
public void run() {
super.run();
long beginTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
//使用yield()方法放弃CPU时间
this.yield();
System.out.println(i++);
}
long endTime = System.currentTimeMillis();
System.out.println("执行完成,用时:" + (endTime - beginTime) + "毫秒!");
} public static void main(String[] args) {
Test01 thread = new Test01();
thread.start();
}
} //打印结果 9984
9986
9988
9990
9992
9994
9996
9998
执行完成,用时:241毫秒!

事实证明,执行yield()方法把CPU时间给其他程序,会使此程序执行效率变慢。

java多线程的常用方法的更多相关文章

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

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

  2. Java多线程-----Thread常用方法

    1.public Thread(Runnable target,String name) 创建一个有名称的线程对象 package com.thread.mothed; public class Th ...

  3. Java多线程常用方法的使用

    Java多线程的常用方法基本分为:获取当前线程的操作,线程休眠sleep()方法,线程让步yield()方法,等待其他线程终止join()方法,线程停止的一系列方法. 一.获取当前线程的操作   1. ...

  4. Java多线程(一) 多线程的基本使用

    在总结JDBC数据库连接池的时候,发现Java多线程这块掌握得不是很好,因此回头看了下多线程的内容.做一下多线程模块的学习和总结,稳固一下多线程这块的基础.关于多线程的一些理论知识,这里不想啰嗦太多, ...

  5. Java多线程中的常用方法

    本文将带你讲诉Java多线程中的常用方法   Java多线程中的常用方法有如下几个 start,run,sleep,wait,notify,notifyAll,join,isAlive,current ...

  6. Java多线程并发02——线程的生命周期与常用方法,你都掌握了吗

    在上一章,为大家介绍了线程的一些基础知识,线程的创建与终止.本期将为各位带来线程的生命周期与常用方法.关注我的公众号「Java面典」了解更多 Java 相关知识点. 线程生命周期 一个线程不是被创建了 ...

  7. Java多线程干货系列—(一)Java多线程基础

    前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的 ...

  8. Java多线程总结之线程安全队列Queue

    在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列.Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非 ...

  9. Java多线程干货系列(1):Java多线程基础

    原文出处: 嘟嘟MD 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程 ...

随机推荐

  1. 一个简单的EventEmitter

    用JS写了一个简单的EventEmitter: class EventEmitter { /** * 事件名/回调列表 字典 * @type {Map<string, Array<func ...

  2. 在Ubuntu环境下配置NIMH MEG Core Facility之CTF Tools

    在Ubuntu环境下配置NIMH MEG Core Facility之CTF Tools 网站有提示: The install script won't work, but you can copy ...

  3. python3对多线程处理

    参考博客: https://blog.csdn.net/u010339879/article/details/86506450 https://blog.csdn.net/qq_33961117/ar ...

  4. Mac 颜色取值

    command+shift+4  截图,我靠,我以前不知道 系统自带数码测色计, 选择显示十六位制 command+L 锁定 command+shift+c 复制 简直太方便

  5. Java JDBC链接Oracle数据库

    package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import ja ...

  6. linux 链接的使用 创建和删除符号连接

    1 . 使用方式 :ln [option] source_file dist_file                     -f 建立时,将同档案名删除.                     ...

  7. linux 命令——34 du(转)

    Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...

  8. [Rails学习之路]初识Ruby(二)

    继续上次Ruby的学习.接下来就到了Ruby的方法. Ruby的方法与Python仍然很像.使用def定义,可以使用undef取消定义. 在Ruby中,经常可以看见方法后面跟有"?" ...

  9. JAVA设计模式初探之桥接模式

    生活中的一个例子:    拿汽车在路上行驶的来说.既有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶.这你会发现,对于交通工具(汽车)有不同的类型,它们所行驶的环境(路)也 ...

  10. django+xadmin在线教育平台(三)

    通过留言版功能回顾django基础知识 将对于django目录结构,使用Django快速搭建可以提交的表单页面,models.py , urls.py, views.py. 从数据库中取出数据展示到h ...