• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

黄文超

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

多线程技术基础

多线程技术基础

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要好

posted on 2021-03-25 18:34  黄文超  阅读(92)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3