并发性(concurrency)和并行性(parallel)区别
一、并发性(concurrency)和并行性(parallel)是两个概念,
1. 并行
并行是指在同一时刻,有多条指令在多个处理器上同时执行;
2. 并发
并发指在同一时刻,只能有一条指令执行,但多个进程指令被快速轮换执行,使得宏观上具有多个进程同时执行的效果。
二、多线程编程优点:
- 进程之间不能共享内存,但线程之间共享内存非常容易。
- 系统创建线程所分配的资源相对创建进程而言,代价非常小。
四、Java中实现线程的方式目前有三种:
一:继承Thread类创建线程类
二:实现Runnable接口创建线程类
三:使用Calable和Future创建具备返回值的线程
废话不说了,上个例子:
package com.hthl.rabbit;import java.util.ArrayList;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class invokeAllDemo{public static void main(String[] args) throws Exception {ExecutorService service=Executors.newFixedThreadPool(100);ArrayList<Callable<Object>> list=new ArrayList<Callable<Object>>();for (int i = 0; i < 1000; i++) {list.add(new Callable<Object>() {@Overridepublic Object call() throws Exception {System.out.println(Thread.currentThread().getName());return null;}});}service.invokeAll(list);System.out.println("可以汇总计算了!");service.shutdown();}}
五、总结:
1. 用Runnable与Callable接口的方式创建多线程的特点:
线程类只是实现了Runnable接口或Callable接口,还可以继承其它类。
在这种方式下,多个线程可以共享一个target对象,所以非常适合多个线程来处理同一份资源情况。
如果需要访问当前线程,需要使用Thread.currentThread方法。
Callable接口与Runnable接口相比,只是Callable接口可以返回值而已。
2. 用Thread类的方式创建多线程的特点:
因为线程已经继承Thread类,所以不可以再继承其它类。
如果需要访问当前线程,直接使用this即可。
内容来自https://blog.csdn.net/xuxile/article/details/77651939
并发性(concurrency)和并行性(parallel)区别相关推荐
- 并发与并行概念认知(并发性不是并行性(并行性更好))
并发和并行是程序重要概念,也是一种解决问题的思路.在golang创始人rob pike的演讲Concurrency is not Parallelism (it's better)举例花枝鼠烧书的例子 ...
- 并发(concurrency)和并行(parallelism)的区别
并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生. 并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生. 并行( ...
- 并行性和并发性的区别
并发性和并行性的区别: 并行性包含同时性和并发性,并行性是指两个或多个事件在同一时刻发生,并发性是指两个或多个事件在同一时间段内发生.并行性简单点说,就好像一个四车道同一时间最多并行行驶四辆车.
- 通俗理解并行性和并发性的区别
并发性和并行性二者容易让初学者糊涂 先看下标准说法 并发性:指两个或多个事件在同一时间间隔发生 并行性:指两个或多个事件在同一时刻发生 这里举个生活中例子: 假如你8:00–8:30吃东西,8:30– ...
- python访问数据库如何解决高并发_使用 Python 和 Oracle 数据库实现高并发性
随着趋势发展的核心转向更多而不是更快发展,最大限度地提高并发性的重要性日益凸显.并发性使得编程模式发生了新的转变,可以编写异步代码,从而将多个任务分散到一组线程或进程中并行工作.如果您不是编程新手并且 ...
- 回滚机制_【巨杉数据库SequoiaDB】巨杉 Tech | 并发性与锁机制解析与实践
01 概述 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性.加锁 ...
- oracle并行parallel update两张表_Oracle与并行性 parallel
Oracle与并行性 并行化操作能力是巨型数据库(Very Large Database,简称VLDB)最重要的特性之一.带有多个CPU的数据库服务器,也被称作SMP,目前是大多数数据库服务器的标准配 ...
- JVM 并发性: Java 和 Scala 并发性基础(1)
转载于:http://www.itxuexiwang.com/a/javajishu/jvm_jdk_yuanmafenxi/2016/0129/50.html?1454076380 处理器速度数十年 ...
- 【巨杉数据库SequoiaDB】巨杉 Tech | 并发性与锁机制解析与实践
01 概述 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性.加锁 ...
- CUDA 7 Stream流简化并发性
CUDA 7 Stream流简化并发性 异构计算是指高效地使用系统中的所有处理器,包括 CPU 和 GPU .为此,应用程序必须在多个处理器上并发执行函数. CUDA 应用程序通过在 streams ...
最新文章
- JSP笔记-点击量统计
- Profiler 使用说明
- Python 网络服务相关 杂记
- mysql.user表中Host为%的含义
- 方式程0day MS17-010远程溢出漏洞测试
- flink的udtf中String[]转String数组
- SAP CRM One Order跟踪和日志工具CRMD_TRACE_SET
- linux中mac地址路径,MAC地址
- 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁...
- WPS文字表格自动填充序号
- SQL Server设置SQL Server身份验证
- 【报告分享】快手男性消费用户洞察-36Kr磁力引擎(附下载)
- 关于健身的那点儿事儿
- android开发相册代码,Android开发之简单的电子相册实现
- 软件测试需要掌握哪些知识?软件测试基础理论
- windows下安装PHP的swoole拓展
- xelatex+beamer+中文的一个tex例子
- 深度相机(五)--Kinect v2.0
- R语言中的导出为pdf文件或txt文件的注意事项
- 我的第一台智能手机:多普达D600