package com.xiuye.thread;
public class CounterRunnable implements Runnable {
private int i = 0;
public CounterRunnable() {
}
@Override
public void run() {
i++;
System.out.println(Thread.currentThread().getName()
+ " In runnable output: " + i);
}
}
package com.xiuye.thread;
public class MultiThreads extends Thread {
public MultiThreads(Runnable target, String name) {
super(target, name);
}
public MultiThreads(Runnable target) {
super(target);
}
public MultiThreads(String name) {
super(name);
}
public MultiThreads(ThreadGroup group, Runnable target, String name,
long stackSize) {
super(group, target, name, stackSize);
}
public MultiThreads(ThreadGroup group, Runnable target, String name) {
super(group, target, name);
}
public MultiThreads(ThreadGroup group, Runnable target) {
super(group, target);
}
public MultiThreads(ThreadGroup group, String name) {
super(group, name);
}
public MultiThreads() {
}
private int i = 0;
@Override
public void run() {
super.run();
i++;
System.out.println("In thread output: " + i);
}
public static void main(String[] args) {
CounterRunnable ra = new CounterRunnable();
/**
* 在thread中的“run”和runnable中的“run”
* 是都会执行
*
*
*/
MultiThreads mt = new MultiThreads(ra);
mt.start();
/**
* 一个runnable 多个thread
* 会不会出现共享数据问题?
*/
for(int j = 0;j<10;j++){
new MultiThreads(ra).start();
}
}
}
Thread-0 In runnable output: 2
Thread-2 In runnable output: 3
In thread output: 1
Thread-1 In runnable output: 2
In thread output: 1
Thread-4 In runnable output: 5
In thread output: 1
Thread-3 In runnable output: 4
Thread-5 In runnable output: 6
In thread output: 1
In thread output: 1
Thread-6 In runnable output: 7
In thread output: 1
In thread output: 1
Thread-7 In runnable output: 8
In thread output: 1
Thread-8 In runnable output: 9
In thread output: 1
Thread-9 In runnable output: 10
In thread output: 1
Thread-10 In runnable output: 11
In thread output: 1
package com.xiuye.thread;public class CounterRunnable implements Runnable { private int i = 0; public CounterRunnable() { } @Override public void run() { i++; System.out.println(Thread.