多线程技术基础

多线程技术基础

1、线程和进程

1、什么是进程:
	是一个内存中运行的应用程序,每一个进程有一个独立的空间,可以理解为一个完成的功能程序。
2、什么是线程:
	就是一个进程中的多个完成的任务线,意思是它是一个小的独立的任务,它共享同一个进程中的内存空间,自己没有单独内存空间

2、同步和异步

1、同步:
	同步就是类似于排队执行,一个一个来打饭这样的
2、异步:
	异步就是大家一起执行,各自做各自的事。

3、java中的多线程

java中的多线程一般都是抢占式的
每一个线程都有一个独立的栈空间,但是有共同的堆空间
多线程的实现:

(1)、继承Thread,start方法开启线程

public class ThreadTest extends Thread {
    @Override
    public void run() {
        for (int i = 0;i<10;i++) {
            System.out.println("Thread继承" + i);
        }
    }
}

(2)实现Runnable接口,然后调用这种对象,依然是Thread中的start方法开启线程

public class RunnableTest implements Runnable {

    @Override
    public void run() {
        System.out.println("实现了Runnablej接口");
    }

}

(3)实现Callable接口,然后创建一个FutureTask对象,然后创建线程

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class CallableUser {
    public static void main(String[] args) {
        Test2 t = new Test2();
        FutureTask<Integer> task = new FutureTask<Integer>(t);
        new Thread(task).start();
    }
}
class Test2 implements Callable<Integer> {

    @Override
    public Integer call() throws Exception {
        for(int i=0;i<10;i++) {
            System.out.println(Thread.currentThread().getName() + ":" + i);
        }
        return 123;
    }
}

4、使用Runnable接口的好处

1、线程和任务实现了分离,符合程序设计中的低耦合
2、避免了java中的单继承所带来的局限性
3、当任务过多的时候性能会比继承Thread要好
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值