继续学习-----------------------------------------------------------------------
在Java中线程指的是两件事
1)java.lang.Thread类的一个实例
2)线程的执行
一个Thread类实例只是一个对象,生死于堆上。main方法就是一个主线程
Java线程的创建与启动:
1)扩展java.lang.Thread类
2)实现java.lang.Runnable接口
实例化线程:
1)如果是扩展Thread的,直接用new就可以
2)如果是实现了Runnable接口的类,则使用Thread的构造方法
Thread(Runnable target)
Thread(Runnable target, String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
启动线程:
调用start方法
启动新的执行线程
运行run方法
实例代码:
package com.ehealth.thread;
public class RunnableDemo implements Runnable{
private String name;
public RunnableDemo(String name){
this.name=name;
}
@Override
public void run() {
for(int i=0;i<5;i++){
for(int k=0;k<5;k++)
System.out.println(name+":"+i);
}
}
}
package com.ehealth.thread;
public class TestThread extends Thread{
public TestThread(String name){
super(name);
}
public void run(){
for(int i=0;i<5;i++){
for(int k=0;k<5;k++){
System.out.println(this.getName()+":"+i);
}
}
}
public static void main(String[] args) {
Thread t1=new TestThread("johnw");
Thread t2=new TestThread("wee");
t1.start();
t2.start();
}
}
自己的理解:
如果是实现Runnable接口的,必须实现run方法。在启动线程的时候必须先new出自己,在new出Thread对象,还要把自己当做参数传递给Thread
如果是继承Thread类的,同样重写run方法,然后new出自己就可以start
run方法都包含了自己要实现的这个线程的执行逻辑。
感觉线程太多了。这里就先摘录跟总结基础吧。最后可以学习着把socket跟线程还有IO流结合起来
转载于:https://blog.51cto.com/ehealth/1721908