一.进程是什么?线程又是什么?
1.进程是指在系统中正在运行的应用程序,程序一旦运行就是进程;
在电脑上打开任务管理器就能看到自己运行了哪些进程。
2.线程是进程中的一个实体,是被系统独立调度和分派的基本单位;
比如在360杀毒软件中,我们既可以安全体检也可以清理垃圾,这里的安全体检是360杀毒软件中的一个线程,清理电脑中的垃圾也是一个线程。
3.进程是负责整个程序的运行,而线程是程序中具体的某个独立功能的运行;
二.线程的生命周期
三.线程的三种创建方式
//茴香豆的四种写法。好吧,正经一点。
1.通过继承 Thread 类本身
//定义一个类来继承Thread类
class NewThread extends Thread {
//重写run方法,来执行我想要执行的代码
@Override
public void run() {
//线程要执行的代码
}
}
public class test {
public static void main(String[] args) {
//创建NewThread对象
NewThread newThread = new NewThread();
//启动线程
newThread.start();
}
}
2.通过实现Runnable接口
//定义一个类来实现Runnable接口
class Task implements Runnable{
//重写run方法,来执行我想要执行的代码
@Override
public void run() {
//线程要执行的代码
}
}
public class test {
public static void main(String[] args) {
//获取Task对象
Task task = new Task();
//创建线程类Thread的对象,并把任务类对象和定义的线程名字作为参数传递
Thread newthread = new Thread(task, "新线程");
//启动线程
newthread.start();
}
}
3.通过 Callable 和 Future 创建线程
public class CallableTest implements Callable {
@Override
public Integer call() throws Exception {
// TODO Auto-generated method stub
int i = 0;
for (; i < 10; i++) {
// 当前线程
System.out.println("线程名" + ":" + Thread.currentThread()+ ":"+ i );
}
return i;
}
public static void main(String[] args) {
CallableTest call = new CallableTest();
FutureTask<Integer> fu = new FutureTask<Integer>(call);
Thread th = new Thread(fu, "有返回值的线程");
for (int i = 0; i < 1; i++) {
// 当前线程
System.out.println(Thread.currentThread().getName());
if (i == 0) {
// 启动第一个线程
th.start();
}
}
try {
System.out.println("返回值是:" + fu.get());
} catch (Exception e) {
e.printStackTrace();
}
}
}
四.Thread常用方法
1 public void start()
使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
2 public void run()
如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
3 public final void setName(String name)
改变线程名称,使之与参数 name 相同。
4 public final void setPriority(int priority)
更改线程的优先级。
5 public final void setDaemon(boolean on)
将该线程标记为守护线程或用户线程。
6 public final void join(long millisec)
等待该线程终止的时间最长为 millis 毫秒。
7 public void interrupt()
中断线程。
8 public final boolean isAlive()
测试线程是否处于活动状态。
五.线程安全问题
不行,顶不住啦。再不睡觉我得猝死了!下次总结吧,告辞!