day26 进程

1.内存中每个程序叫进程

  • 一个程序中多个线程执行
  • cpu中央处理器(英特尔,amd)intel core(核心)i5
  • 浏览器下载一个线程,下载器多个线程下载同一个文件
  • 分时调度:所有线程轮流使用;抢占式调度:根据优先级

2.thread

  • 继承thread并重写run方法,使用start()(开启线程)虚拟机会自动调用run方法
  • Thread.sleep(10);也有静态休眠方式
  • main是一个栈,新的线程重新开一个栈,栈内存均是相对应线程私有
  • 静态方法currentthread返回当前线程(Thread.currentThread().getName())
threadText tt=new threadText();
tt.setName("aaa");设置线程名
tt.sleep(1000);休眠,以毫秒为时间单位
tt.start();
----------
public class threadText extends Thread {
    @Override
    public void run() {
        super.run();
        System.out.println(this.getName());
    }
}

3.Runnable 接口实现

  • 耦合降低
SubRunable tt=new SubRunable();
new Thread(tt).start();
----------匿名内部类写法
new Thread(new Runnable() {
    
    @Override
    public void run() {
    }
}).start();

-------
public class SubRunable implements Runnable {
    @Override
    public void run() {
        
        System.out.println(Thread.currentThread().getName()+"run111");
    }
}

4.线程关系

  • 生命周期:new,runable状态,死亡(stop)
  • 在runable状态又有几种分别:
- 阻塞,正在等待执行,cpu调节,自动
- 休眠(sleep),可被唤醒执行或者阻塞,时间决定
- wait等待,可被唤醒(notify()),无限时

5.线程池

  • 重复利用线程池中线程,因为创建线程和销毁占用大量资源
ExecutorService es = Executors.newFixedThreadPool(2);线程池放两个线程
        es.submit(new SubRunable());
        es.submit(new SubRunable());
        es.submit(new SubRunable());
es.shutdown();销毁线程池,一般不用
SubRunable自定义线程对象有runable接口
两个现线程同时执行两个任务,第三个等待空闲线程

6.callable能抛异常,有返回值

  • runable不能抛异常,没有返回值
    ExecutorService es = Executors.newCachedThreadPool();
        Future<String> s = es.submit(new TextCall());
        
        System.out.println(s.get());
--------------------
public class TextCall implements Callable<String>{

    @Override
    public String call() throws Exception {
        return "aaa";
    }
}
自由定义返回值类型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,429评论 18 399
  • 一.线程与进程相关 1.进程   定义:进程是具有独立功能的程序关于某个数据集合上的一次运行活动,进程是操作系统分...
    Geeks_Liu阅读 5,674评论 2 4
  • 一.线程安全性 线程安全是建立在对于对象状态访问操作进行管理,特别是对共享的与可变的状态的访问 解释下上面的话: ...
    黄大大吃不胖阅读 4,348评论 0 3
  • 该文章转自:http://blog.csdn.net/evankaka/article/details/44153...
    加来依蓝阅读 12,077评论 3 87
  • 夏季到来了,又到了吃冷面最佳时节。。 说起冷面,我倒是很有故事呢尤其是会想起,或是从没忘记的一个人,我的老叔 我老...
    飘飘小仙子阅读 5,163评论 0 1

友情链接更多精彩内容