JAVA 线程学习 - Thread了解
public class ThreadKnow
{
private TimeThread timeThread;
private boolean flag; public ThreadKnow()
{
/*************************创建线程************************/
//自定义线程构建方式一 继承Thread类
// public class MyThreadExam1 extends Thread
// { //自定义线程构建方式二:实现Runnable接口
// public class MyThreadExam2 implements Runnable
// { //对于需要在线程中执行的操作,可以重写父类的run()方法,并在方法中添加操作代码 /*************************线程中控制状态的使用************************/
/***一***/
//Thread.sleep()只能对当前运行的线程进行阻塞
//sleep在进入阻塞状态后只有到达时间毫秒后自动苏醒,任意方式打断处于sleep状态的线程都将引起异常
//sleep在进入阻塞状态后该线程所使用的到其他对象都将处于锁定的状态(sleep阻塞不会释放对象锁)
/***二***/
//当发生多个线程公用一个对象时,为防止该对象被随意使用,可以使用同步快对对象进行控制,为对象加上对象锁
//对象所只能对对象有作用:即对基本数据类型时没作用的
// synchronized (list)
// {
// //操作代码
// }
/***三***/
//加入线程队列中,等待线程执行完毕
// timeThread.join();
/***四***/
//强制终止该线程
timeThread.stop();
/***五***/
//挂起线程,但是会保留对象锁
timeThread.suspend();
/***六***/
//继续挂起的线程,和suspend搭配使用
timeThread.resume();
/***七***/
//将该线程加入到执行队列中,等待该线程的执行完毕
// timeThread.join();
/***八***/
//暂停当前正在执行的线程,并执行其他线程
timeThread.yield(); /***九***/
//线程等待:该方法是Object对象的方法,但是也可以控制线程,而且会释放对象锁
// new Object().wait();
/***十***/
//线程唤醒:同样是Object对象的方法,需要搭配使用wait()使用
new Object().notify(); //创建线程
timeThread = new TimeThread();
//开启线程
timeThread.start();
//判断线程的状态
if(timeThread.getState() == State.NEW)
{
}
else
{
}
//打断线程,并不能阻止线程的停止,修改线程的状态
timeThread.interrupt();
//暂停线程,将线程挂起
timeThread.suspend();
//继续线程,将使用suspend挂起的线程继续执行
timeThread.resume();
} public static void main(String[] args)
{ }
/**
* 显示时间的线程
* @author Administrator
*
*/
private class TimeThread extends Thread
{ @Override
public void run()
{
while(true)
{
if(flag)
{
String time = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
// lblTime.setText(time);
try
{
Thread.sleep(1000);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }
}
JAVA 线程学习 - Thread了解的更多相关文章
- java 线程学习
转载:详见处http://lavasoft.blog.51cto.com/62575/27069 Java多线程编程总结 下面是Java线程系列博文的一个编目: Java线程:概念与原理 ...
- java线程学习——汉堡销售问题
汉堡店中有一个负责做汉堡的厨师,一个负责销售的营业员,用java线程表示他们的营业过程: 问题原型就是生产者与消费者的问题. 首先定义一个汉堡包箱子类与几个相关的变量类: public class H ...
- java线程学习(一)
1.简介 java基础知识部分线程创建的三种方式.线程执行的样例. 代码地址:http://git.oschina.net/blue_phantom/javaj 包位置:package com.blu ...
- java线程学习之synchronized关键字
关键字synchronized的作用是实现线程间的同步.它的任务是对同步的代码加锁.一个代码块同时只能有同一个线程进行读和写操作,从而保证线程间是安全的. 线程安全的概念是:当多个线程访问某一个类(对 ...
- 初识java线程(Thread)
<1>.概念问题 线程的状态:1.NEW : 没有start的线程 2.RUNNING :可运行线程,可能正在执行,也可能正在等待操作系统中的其他资源,比如cpu时间片 3.BlOCKED ...
- Java线程学习详解
线程基础 1. 线程的生命周期 1.1 新建状态: 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态.它保持这个状态直到程序 start() 这个线程. 1 ...
- Java线程学习笔记(两) 线程异常处理
线程捕获异常: 情况下,我们在main()方法里是捕捉不到线程的异常的,比例如以下面代码: public class ExceptionThread implements Runnable{ @Ove ...
- Java线程学习笔记(一个)
一个.正在创建的线程: 老掉牙的话题了.继承 java.lang.Thread父类或者实现Runnalbe接口.这里就提一句: class Thread implements Runnable Thr ...
- 学习java线程学习笔记
线程:代码执行的一个分支 主要作用是提高了效率,cpu能同时执行多个部分的代码. 线程的创建:两种方式 a.继承于thread类,重写run方法. b. ...
随机推荐
- js添加删除元素
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- Log4net 自定义字段到数据库(二)
这种方法比第一种方法麻烦些 Log4Net.config <?xml version="1.0" encoding="utf-8" ?> <c ...
- firebug如何使用
1.怎么安装firebug: a.打开火狐浏览器--------b.点击火狐浏览器的右上角这个小图标-------c.点击<获取附件组件>,在右上角的搜索框()内,输入firebug,点击 ...
- 类 BufferedReader
以前学习的时候也没有太在意,在项目中使用到了才发现呵呵 1.读取一个txt文件,方法很多种我使用了字符流来读取(为了方便) FileReader fr = new FileReader("f ...
- 测试scanf输入含非法控制符
心得: 学到scanf命令时第一个想到的就是可以利用scanf做一个十进制转16进制.八进制的小程序,很天真的以为也可以转二进制,在搜索字符控制符的时候才知道原来没有二进制的控制字符,需要换算出来得出 ...
- html5 note
HTML5的特点 绘图支持 canvas 多媒体支持 video audio 离线应用 和 离线存储 新的语义化元素 article footer header nav section 表单增强 ca ...
- 打开固定文件的pr_debug
驱动中pr_debug定义在kernel/include/linux/printk.h /* If you are writing a driver, please usedev_dbg instea ...
- Primefaces 中e.offset(...)问题的处理
问题 在使用Primefaces构建的页面中,原来好好的页面莫名奇异的出现下拉框不能显示数据且点击没有反应的情况.后来通过firefox发现其JS抛出了一个e.offset(...)错误 解决方法 经 ...
- Ext2文件系统布局,文件数据块寻址,VFS虚拟文件系统
注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料如<linux内核完全剖析>.<linux c 编程一站式学习>等,只是为了更好 ...
- Linux系统源码安装过程中的prefix选项
在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式.原因是:(1 ...