java 多线程实例,自己写的第一个例子,理解什么是多线程,怎么写多线程
2017-09-10 12:39
525 查看
package test;
public class ThreadTest extends Thread {
public ThreadTest(String str){//用构造函数控制线程的名字,如果不写,默认是thread-整数
super(str);
}
@Override
public void run() {
synchronized(this){
for(int i=0;i<10;i++){//控制run的内部这些东西执行的次数,不加这句,run只执行一次。
System.out.println(i+getName());
try {
sleep((long)(Math.random()*1000));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//for循环结束
System.out.println("for循环结束"+getName());
}
super.run();
}
/*
* 此方法可添加也可以不填加,start都能够调用。
* @Override
public synchronized void start() {
// TODO Auto-generated method stub
super.start();
}*/
public static void main(String args[]){
new ThreadTest("su").start();
new ThreadTest("zhu").start();
}
}
1其中sleep函数,是让程序在这一行卡一会儿,然后再执行后面的代码。起到休息的作用。是Tread类特有的,不继承Tread直接是没办法使用sleep的,编译器会报错。
2TreadTest(su)和TreadTest(zhu)两个是并行的,即基本上是同时执行的,但是执行速度是随机的(受到当时cpu、内存等的环境影响),所以system.out.println打印出来的东西是随机的,不是固定的。即每一次执行该class,输出的结果是随机的。如下对比
public class ThreadTest extends Thread {
public ThreadTest(String str){//用构造函数控制线程的名字,如果不写,默认是thread-整数
super(str);
}
@Override
public void run() {
synchronized(this){
for(int i=0;i<10;i++){//控制run的内部这些东西执行的次数,不加这句,run只执行一次。
System.out.println(i+getName());
try {
sleep((long)(Math.random()*1000));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//for循环结束
System.out.println("for循环结束"+getName());
}
super.run();
}
/*
* 此方法可添加也可以不填加,start都能够调用。
* @Override
public synchronized void start() {
// TODO Auto-generated method stub
super.start();
}*/
public static void main(String args[]){
new ThreadTest("su").start();
new ThreadTest("zhu").start();
}
}
1其中sleep函数,是让程序在这一行卡一会儿,然后再执行后面的代码。起到休息的作用。是Tread类特有的,不继承Tread直接是没办法使用sleep的,编译器会报错。
2TreadTest(su)和TreadTest(zhu)两个是并行的,即基本上是同时执行的,但是执行速度是随机的(受到当时cpu、内存等的环境影响),所以system.out.println打印出来的东西是随机的,不是固定的。即每一次执行该class,输出的结果是随机的。如下对比
相关文章推荐
- 怎么理解,java语言是跨平台的?即什么是跨平台?C也说自己是跨平台的,怎么理解?
- java多线程结合单例模式实例,简单实用易理解
- 简单Java代码实例助你通俗易懂的理解什么是装饰(者)设计模式 (Decorator)
- Java 多线程编程之五:一个理解 wait() 与 notify() 的例子
- Java中实例是什么意思?补充:new 一个对象是实例吗? 能举个小例子吗?
- 深入理解Java对象实例生成的例子!
- 在java中怎么理解“用instanceof操作符判断父类对象是否为子类的一个实例”?
- java多线程售票程序实例及synchronized理解
- java面向对象,什么是对象,什么是类,如何理解,怎么使用
- 深入理解Java对象实例生成的例子!
- Java基础(高级)——多线程的理解和Synchronized实例,以及线程间通信,wait,notify等方法
- [学习笔记]Java代码构建一个线程池的自己学习写的实例,用这个你会更好的理解文章内容
- 在网上找了个java小游戏的实例,敲完后发现没有main,自己加了个后,无法运行请问是什么问题 [ Java SE]
- 通过Java反射调用方法的实例,通过这个例子,能明白怎么用反射。
- Java入门学习-理解什么是JRE和JDK,然后搭建JAVA开发环境,用eclipse写出第一个helloworld程序
- 多线程——用生活中的例子理解什么是多线程?
- java中collection是什么?怎么理解?怎么使用?
- 关于java方法多线程访问自己的理解
- Java 多线程编程之五:一个理解 wait() 与 notify() 的例子
- java Socket API 详解 .没有实例只能自己取理解了