java并发的一些知识

线程和进程 以及何时使用

链接

同步

同步和通信是一个概念

进程同步(通信)的方式:管道,信号量,消息队列,共享内存,套接字

线程同步(通信)的方式:有四种,牢记,临界区,互斥量,信号量,事件

但是一般都说进程通信与线程同步

临界区和互斥量:用于互斥控制

信号量和事件:用于同步控制

事件对象: 通过通知操作的方式来保持线程的同步,可以实现对多个线程的优先级比较的操作 如:countDownLauch

线程同步的概念:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态。

这里的同步不是 同时的意思,而是协同、协助、互相配合,按照有序的顺序进行,一个做完了一个在做。

线程同步的真实意思和字面意思恰好相反。线程同步的真实意思,其实是“排队”:几个线程之间要排队,一个一个对共享资源进行操作,而不是同时进行操作。

同步包含互斥,同步和互斥不是相对的定义

同步的例子:

1.进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。

2.一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。

同步通信与异步通信

这里的同步不是上边的同步,是客户端(请求的一方)和服务器端的消息通信机制

同步异步通常用来形容一次方法调用。

  • 同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。
  • 异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。

阻塞和非阻塞

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.

阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。

java 多进程的实现

Java提供了两种方法用来启动进程或其它程序: 
(1)使用Runtime的exec()方法 
(2)使用ProcessBuilder的start()方法

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值