Java在不同线程中运行代码

start()方法开始为一个线程分配CPU时间,这导致对run()方法的调用。
代码1
package Threads; /**
* Created by Frank
*/
public class ThreadsDemo1 extends Thread {
private String msg;
private int count; public ThreadsDemo1(final String msg, int n) {
this.msg = msg;
count = n;
setName(msg + " runner Thread");
} public void run() {
while (count-- > 0) {
System.out.println(msg);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
return;
}
}
System.out.println(msg + " all done.");
} public static void main(String[] args) {
new ThreadsDemo1("Hello from X", 10).start();
new ThreadsDemo1("Hello from Y", 15).start();
}
}
代码2:
package Threads; /**
* Created by Frank
*/
public class ThreadsDemo2 implements Runnable {
private String msg;
private Thread t;
private int count; public static void main(String[] args) {
new ThreadsDemo2("Hello from X", 10);
new ThreadsDemo2("Hello from Y", 15);
} public ThreadsDemo2(String m, int n) {
this.msg = m;
count = n;
t = new Thread(this);
t.setName(msg + "runner Thread");
t.start();
} @Override
public void run() {
while (count-- > 0) {
System.out.println(msg);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
return;
}
}
System.out.println(msg + " all done.");
}
}
代码3:
package Threads; /**
* Created by Frank
*/
public class ThreadsDemo3 {
private int count; public static void main(String[] args) {
new ThreadsDemo3("Hello from X", 10);
new ThreadsDemo3("Hello from Y", 15);
}
public ThreadsDemo3(final String msg, int n) {
this.count = n;
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while (count-- > 0) {
System.out.println(msg);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
return;
}
}
System.out.println(msg + " all done.");
}
});
t.setName(msg + " runner Thread");
t.start();
}
}
Java在不同线程中运行代码的更多相关文章
- Java程序在内存中运行详解
目录 Java程序在内存中运行详解 一.JVM的内存分布 二.程序执行的过程 三.只有一个对象时的内存图 四.两个对象使用同一个方法的内存图 五.两个引用指向同一个对象的内存图 六.使用对象类型作为方 ...
- 让NSURLConnection在子线程中运行
可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行. 前面提到可以将NSTimer手动加 ...
- iOS多线程的初步研究(五)-- 如何让NSURLConnection在子线程中运行
可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行. 前面提到可以将NSTimer手动加 ...
- 用Handler的post()方法来传递线程中的代码段到主线程中执行
自定义的线程中是不能更新UI的,但是如果遇到更新UI的事情,我们可以用handler的post()方法来将更新UI的方法体,直接传送到主线程中,这样就能直接更新UI了.Handler的post()方法 ...
- 如何让NSURLConnection在子线程中运行
可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行. 前面提到可以将NSTimer手动加 ...
- Java核心知识点 --- 线程中如何创建锁和使用锁 Lock , 设计一个缓存系统
理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...
- delphi 在线程中运行控制台命令(console)
在编程开发的时候,我们时常会调用windows本身的功能,如:检测网络通断,连接无线wifi等. 虽然,用 windows api 操作可以完美地完成这些操作,但是,函数参数太难了.令人望而生畏,不是 ...
- java 子类、父类中静态代码块、字段,非静态代码块、字段以及构造函数的初始化顺序和次数
一个类中的数据初始化顺序是面试官非常喜欢出的面试题之一,本文用一个实例来介绍java中子类.父类中静态代码块.字段,非静态代码块.字段以及构造函数的执行顺序和次数. 一.包结构
- 关于Qt中使用线程的时候函数具体在哪个线程中运行的问题
在子线程中,run函数中以及其中调用的都在单独的子线程里面运行,但是其他的类似构造函数之流都是在主线程里面运行的,不要搞混了
随机推荐
- WinForm IME输入法BUG完美修复
本文来自http://hi.baidu.com/wingingbob/item/a2cb3fc0fe3bd1bb0d0a7b5b <WinForm IME输入法BUG测试>里,我描述了在. ...
- layUI 几个简单的弹出层
导入控件主题 <link rel="stylesheet" href="dist/themes/default/style.min.css" /> ...
- tf.transpose函数的用法讲解
tf.transpose函数中文意思是转置,对于低维度的转置问题,很简单,不想讨论,直接转置就好(大家看下面文档,一看就懂). tf.transpose(a, perm=None, name='tra ...
- Error:(13, 60) java: 程序包com.sun.tools.internal.xjc.reader.xmlschema.bindinfo不存在
我在import maven项目时,pom.xml报错Missing artifact com.sun:tools:jar:1.5.0,经过盘查发现是pom引入的struts2相关jar包导致报错. ...
- 【ContestHunter】【弱省胡策】【Round7】
Prufer序列+高精度+组合数学/DP+可持久化线段树 Magic 利用Prufer序列,我们考虑序列中每个点是第几个插进去的,再考虑环的连接方式,我们有$$ans=\sum_{K=3}^n N^{ ...
- 用Razor語法寫範本-RazorEngine組件介紹
最近剛好有要寫寄Email的程式,在代碼中寫HTML覺得很呆,抽出代碼外寫到txt或html檔當範本,由程式執行時在載入檔案時用Regex換關鍵字又覺得不夠好用,而且因為有時會有要判斷一些條件,就會寫 ...
- [转]应用RSACryptoServiceProvider类轻松实现RSA算法
在我们现实当中经常会存在需要对某些数据进行加密保护 然后进行解密的操作,比方,我们需要对某些XML配置信息里面的某些数据进行加密,以防止任何人打开该XML配置信息都能正常的看到该配置信息里面的内容,从 ...
- Asp.Net验证控件浅析
ASP.NET公有六种验证控件,分别如下: 控件名 功能描叙 RequiredFieldValidator(必须字段验证) 用于检查是否有输入值 CompareValidato ...
- Exchange 2013与 Office Web Apps 整合
好久没写什么新文章了,这里有关Office Web Apps 的部署我就省略了,只是在创建web场我一般 会创建2个url, 如: New-OfficeWebAppsFarm -InternalUrl ...
- 细说Request与Request.Params
在ASP.NET编程中,有三个比较常见的来自于客户端的数据来源:QueryString, Form, Cookie .我们可以在HttpRequest中访问这三大对象,比如,可以从QueryStrin ...