您的位置:首页 > 编程语言 > Java开发

java线程详解

2017-07-10 21:51 127 查看
1.几个关键词的理解

并行(微观):两个或多个事件在同一时刻点发生。

并发:两个或多个事件在同一时间段内发生

进程:一个内存中运行中的程序,每个进程都有自己独立的一块空间。进程之间通信极不方便。一个进程中至少有一个线程(有独立的内存空间)

线程:进程中的一个执行任务,一个进程可以同时并发运行多个线程(堆空间是共享的,栈空间是独立的)

多进程:操作系统中同时运行多个程序(开销比较大)

多线程:在同一个进程中同时运行多个任务

线程调度:JVM负责线程调度(采用的是抢占式调度,没有采用分时调度)



4000

2.创建进程

1)使用Runtime类(单例,没有构造器,使用getRuntime()  获得实例对象 )的exec方法

2)ProcessBuilder 的start()  方法。



3.创建和启动线程

1)继承Thread类(java.lang.Thread):只有Thread类和其子类才是线程类(main方法运行,表示主线程)



2)实现Runnable接口(java.lang.Runnable)

Thread类也实现了Runnable

创建一个A类实现Runnable接口,覆盖Runnable接口中的run方法,但是A类不是线程类,所以A不能直接调用线程类对象的start()方法

所以需要先创建一个Runnable接口的对象,再将其传给thead的对象





3)使用匿名内部类定义



4.两种创建和启动线程的方式的对比

实例:吃苹果比赛



Runnable接口方法(50个苹果)



Thread类方法(150个苹果)

1)继承方式

-—java中类是单继承的,继承Thread就不能继承其他类了

—操作上比较简单,获取线程的名字也简单

—从多线程共享同一个资源上分析,继承方式不能做到

2)实现方式

—java中可是多实现接口,此时还可以继承其他类

—操作上,实现方式比较复杂,获取线程名字也比较复杂,使用Thread.currentThread().getName()

—从多线程共享同一个资源上分析,实现方式不能做到

注意:推荐使用实现接口的方法

谢谢阅读!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: