线程的常用方法

1.start()

线程调用该方法将启动线程,使之从新建状态进入就绪队列排队。

2.run()

3.sleep()

4.isAlive()

线程处于新建状态时,线程调用isAlive()方法返回false。

public class ClassRoom implements Runnable {
Thread student, teacher;
ClassRoom()
{
teacher = new Thread(this);
student = new Thread(this);
teacher.setName("王教授");
student.setName("张三");
} @Override
public void run() {
// TODO Auto-generated method stub
if(Thread.currentThread() == student)
{
System.out.println(student.getName() + "正在睡觉, 不听课");
try {
Thread.sleep(1000*100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
System.out.println(student.getName() + "被老师叫醒了");
}
}
else if(Thread.currentThread() == teacher)
{
for(int i = 1; i <= 3; i++){
System.out.println("上课");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
student.interrupt();
}
} }

运行

public class Test03 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
ClassRoom room6501 = new ClassRoom();
room6501.student.start();
room6501.teacher.start();
} }

运行结果如下所示:

review37的更多相关文章

随机推荐

  1. C#处理MySql多个返回集

    关于Mysql返回多个集java和Php的较多,但是C#的完整代码好像没见过,研究了一下做个封装以后用 做一个Mysql的简单分页查询,有两个返回集 Sql语句如下 SELECT COUNT(*) f ...

  2. Git is fundamentally a content-addressable filesystem with a VCS user interface written on top of it

    w “加一层去解决问题”:计算机解决问题的思路.怎样将其应用到代码中呢?比如亚马逊接口的开发. git加一UI层去实现易用性和降低用户的迁移成本. https://git-scm.com/book/e ...

  3. IDEA 跑spring项目找不到get,set的问题

    @Autowired的用法和作用 这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get. iDEA下安装lombok这个插件就可 ...

  4. Retrofit2.2说明-简单使用

    很久前就想学习下Retrofit了,不过总是没有时间,正好最近新项目要用到网络请求,正好研究了下Retrofit2.2的简单使用方法,大致记录如下: Retrofit与okhttp共同出自于Squar ...

  5. iOS开发之计算器

    本项目基于swift3.0的语法. // // ViewController.swift // 加法计算器 // // Created by 葛杨杨 on 2017/7/25. // Copyrigh ...

  6. PyQt4打包exe文件

    使用到工具pyinstaller pip install pyinstaller 使用指令打包,其中xxx.ico为需要的图标,xxx.py为要打包的py文件 pyinstaller -w --ico ...

  7. 剑指offer 面试31题

    面试31题: 题目:栈的压入.弹出元素 题:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序 ...

  8. Oracle数据库的启动与关闭

    一.概述: Oracle数据库的启动分为启动数据库实例.装载数据库和打开数据库3个过程,对应数据库的3种模式. 启动数据库实例:根据数据库初始化参数文件中参数设置,在内存中为数据库分配SGA.PGA等 ...

  9. 每天一个Linux命令(60)ip命令

        ip命令是Linux下较新的功能强大的网络配置工具.     (1)用法:     用法:  ip  [OPTIONS]  OBJECT  [COMMAND [ARGUMENTS]]     ...

  10. Socket 例子

    package com.pab.util; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import ...