java 多线程

进程(Process):程序或者任务的执行过程,持有资源(共享内存,共享文件)和线程。

独立性:进程是系统中独立存在的实体,他可以拥有自己的独立的资源,每一个进程都拥有自己私有的地址空间。在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间。
动态性:进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。在进程中加入了时间的概念。进程具有自己的生命周期和各种不同的状态,这些概念在程序中是不具备的。
并发性:多个进程可以在单个处理器上并发执行,多个进程之间不会互相影响。


并发性 concurrency 和并行性 parallel是两个概念,并行指在同一时刻,有多条指令再多个处理器上同时执行;并发指在同一时刻只能有一条指令执行,但是多个进程指令快孙轮换执行,使得在宏观上具有多个进程同时执行得效果。

多线程扩展了多进程的概念,使得同一个进程可以同时并发处理多个任务。
一个进程可以拥有多个线程,一个线程必须拥有一个父进程。
线程可以拥有自己的堆栈,自己的程序计数器和自己的局部变量,但是不拥有系统资源,他与父进程的其他县城共享该进程所拥有的全部资源。

一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行


java 中的函数式接口
使用Thread 子类的方式实现开启线程,开启的线程不能共享资源
集成Runable 接口的方式,因为Runnable只是线程的target ,耳朵个线程可以共享一个target,所以多个线程可以共享同一个县城类的实例变量。
Callable 和 Future


守护线程,后台线程 Daemon Thread
.setDaemon(true);
如果前台线程结束了,后台线程也会结束
线程睡眠
sleep
线程让步
yield 只会让不给优先级相同 或者高于自己优先级的 线程,



线程同步问题

任何时刻只能有一个线程可以获得对同步监视器的锁定,当同步代码块执行完成后,该县城回什邡对该同步监视器的锁定

synchronized(obj){
//同步代码块
}
除了同步代码块,还有相应的同步放方法,用synchroinized 修饰非static,同步方法的监视器是this,也就是调用该方法的对象。通过同步方法可以非常方便的实现县陈安全类,线程安全类有以下特征
该类的对象可以被多个线程安全地访问;
每个线程调用该对象的任意方法之后都会得到正确的结果;
每个线程调用该对象的任意方法之后,该对象状态依然保持合理状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值