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函数中以及其中调用的都在单独的子线程里面运行,但是其他的类似构造函数之流都是在主线程里面运行的,不要搞混了
随机推荐
- 用ArrayAdapter来创建Spinner(自定义布局、默认布局、动态内容、静态内容)
android:dropDownWidth 下拉列表宽度 android:dropDownHorizontalOffset 下拉列表距离左边的距离 android:dropDownV ...
- 《App,这样设计才好卖》
<App,这样设计才好卖> 基本信息 作者: (日)池田拓司 译者: 陈筱烟 丛书名: 图灵交互设计丛书 出版社:人民邮电出版社 ISBN:9787115359438 上架时间:2014- ...
- Java 集合细节(二):asList 的缺陷
在实际开发过程中我们经常使用 asList 讲数组转换为 List,这个方法使用起来非常方便,但是 asList 方法存在几个缺陷: 一.避免使用基本数据类型数组转换为列表 使用 8 个基本类型数组转 ...
- 使用模拟对象(Mock Object)技术进行测试驱动开发
敏捷开发 敏捷软件开发又称敏捷开发,是一种从上世纪 90 年代开始引起开发人员注意的新型软件开发方法.和传统瀑布式开发方法对比,敏捷开发强调的是在几周或者几个月很短的时间周期,完成相对较小功能,并交付 ...
- 用make编译openCV报错:ts_gtest.cpp:(.text._ZN7testing8internal2RED2Ev+0xf): undefined reference to 'regfreeA'
解决方案: the cause is the google tests is looking for the generic regex.h but cmake used the regex.h fr ...
- Pitch,Yaw,Roll的概念
在航空中,pitch, yaw, roll下图所示. pitch是围绕X轴旋转,也叫做俯仰角. yaw是围绕Y轴旋转,也叫偏航角. roll是围绕Z轴旋转,也叫翻滚角. 在3D系统中,假设视点 ...
- Oracle选择性系统授权
Selective System Grants 问题: 我只想授予XX用户alter system set user_dump_dest 权限! I want to give users the ab ...
- xml获取配置DataTable
在CSDN写博客时,经常遇到需要绑定数据源的时候,可是自己从数据库获取数据的函数都是已经封装好了的,这样别人复制你的代码,要想看到结果,还得修改修改,很是麻烦,博客实例,数据源简单点就好,这样别人写你 ...
- [leetcode]N-Queens II @ Python
原题地址:https://oj.leetcode.com/problems/n-queens-ii/ 题意:和N-Queens这道题其实是一样的,只不过这次要求返回的时N皇后的解的个数的问题. 解题思 ...
- TCP/UDP常见端口
著名端口 端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat ...