Java SE (5)之 线程使用

JAVA有两种线程的方法Thread 和Runnable 能够使用,这是为了弥补不能多继承的缺陷

首先是 Thread

package com.sunzhiyan03;
/*
 * 演示线程
 * */
public class Demo1 {

	public Demo1() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Cat cat1 = new Cat();
		//启动线程,导致run函数的调用
		cat1.start();
	}

}
//继承线程
class Cat extends Thread{
	//重写run 函数
	int times = 0;
	public void run(){
		while(true){
			//休眠一秒
			//blocked状态,释放资源
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			times ++;
			System.out.println("hello , world");
			//跳出循环
			if(times == 10){
				break;
			}
		}
	}

}

  然后是Runnable

package com.sunzhiyan03;

public class Demo2 {

	public Demo2() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Dog dog = new Dog();
		//dog.run();
		//借助Thread 的start方法进行启动
		Thread t = new Thread(dog);
		t.start();
	}

}
class Dog implements Runnable{
	int times = 0;
	public void run(){
		while(true){
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("hello,world"+times);
			times ++;
			if(times == 10){
				break;
			}
		}
	}

}

  

Java SE (5)之 线程使用,布布扣,bubuko.com

时间: 2024-12-28 08:39:46

Java SE (5)之 线程使用的相关文章

java SE学习之线程同步(详细介绍)

       java程序中可以允许存在多个线程,但在处理多线程问题时,必须注意这样一个问题:               当两个或多个线程同时访问同一个变量,并且一些线程需要修改这个变量时,那么这个程序是该如何执行?              也就是先访问这个变量还是先修改这个变量.              在学习线程的这段时间里,我也一直被这个问题所困扰!但是今天终于算是搞明白了.              于是将这些好的列子一一列举出来,分享一下. (1)什么是线程同步 ?      

java SE程序关于高并发的注意事项

最近做一个java SE程序.使用线程池进行高并发任务的处理.其中任务处理过程中会有查询数据库操作,导致任务处理非常迟缓.于是在网上查找资料.最终解决现在把有关的注意事项进行总结.一.关于线程池的注意事项.对于多个任务,线程池最好不要公用.应该把线程池分开关于线程池的代码 </pre><pre code_snippet_id="547077" snippet_file_name="blog_20141209_1_7940215" name=&quo

Java SE和Java EE应用的性能调优

凡事预则立,不预则废,和许多事情一样,Java性能调优的成功,离不开行动计划.方法或策略以及特定的领域背景知识.为了在Java性能调优工作中有所成就,你得超越"花似雾中看"的状态,进入"悠然见南山"或者已然是"一览众山小"的境界. 这三个境界的说法可能让你有些糊涂吧,下面进一步解释. 花似雾中看(I don't know what I don't know).有时候下达的任务会涉及你所不熟悉的问题域.理解陌生问题域首先面临的困难就是如何竭尽所能地

Java SE 6 新特性: JMX 与系统管理

Java SE 6 新特性: JMX 与系统管理 2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Mustang 在性能方面有了不错的提升.与 Tiger 在 API 库方面的大幅度加强相比,虽然 Mustang 在 API 库方面的新特性显得不太多,但是也提供了许多实用和方便的功能:在脚本,WebService,XML,编译器 API,数据库,JMX,网

通过Java SE 7自带的监控服务(WatchService API)实现类似.NET FileWatcher的功能

Java SE 7 Tutorial中增加了一个监控目录变更情况的示例,用于介绍其新发布的WatchService API. 但对于用惯了.NET FileWatcher的用户而言,如果用于项目我认为它有两个欠缺: 1.应该提供一个独立线程后台运行机制,让这个监控过程自己在后台转,不影响前端处理 2. Java不像.NET有内置的源生事件机制,不过可以借助它内置的Observer/Observable对象用观察者模式实现准事件 下面是把Java SE Tutorial示例中无关内容删除,补充上述

在 Java SE 6 中监视和诊断性能问题

Java™ Platform, Standard Edition 6 (Java SE) 专注于提升性能,提供的增强工具可以管理和监视应用程序以及诊断常见的问题.本文将介绍 Java SE 平台中监视和管理的基本知识,并提供 Java SE 6 中相关增强的详细信息. Java SE 6 对性能进行了深入研究,使用增强的工具管理和监视应用程序并且诊断常见问题.这些改进包括: 监视和管理 API 增强 正式支持增强的图形监视工具 JConsole 提供增强的 Java 虚拟机(JVM)测试工具 本

Java SE (6)之 多线程

package com.sunzhiyan03; /* * 演示多线程 * */ public class Demo3 { public Demo3() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method stub Pig pig = new Pig(); Bird bd = new Bird(10); //启动一个线程

(转)通过Java SE 7自带的监控服务(WatchService API)实现类似.NET FileWatcher的功能

转自:http://www.cnblogs.com/callwangxiang/archive/2011/08/04/JavaDirectoryWatcherFileWatcher.html Java SE 7 Tutorial中增加了一个监控目录变更情况的示例,用于介绍其新发布的WatchService API. 但对于用惯了.NET FileWatcher的用户而言,如果用于项目我认为它有两个欠缺: 1.应该提供一个独立线程后台运行机制,让这个监控过程自己在后台转,不影响前端处理 2. Ja

Java SE(一)——java基础

目录 一.Java是什么 1.2.Java相关网站 1.3.发展历史 1.4.Java组成 二.Java能做什么 三.Java语言的特点 四.第一个Java程序 4.1.安装JDK并安装 4.2.配置环境变量 4.2.1.手动添加 4.2.2.批处理添加一 4.2.3.批处理添加二 4.3.编辑源代码 4.4.编译运行 4.5.运行机制解析 五.使用IDE开发Java程序 六.下载 一.Java是什么 Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台