一、并发性(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)区别相关推荐

  1. 并发与并行概念认知(并发性不是并行性(并行性更好))

    并发和并行是程序重要概念,也是一种解决问题的思路.在golang创始人rob pike的演讲Concurrency is not Parallelism (it's better)举例花枝鼠烧书的例子 ...

  2. 并发(concurrency)和并行(parallelism)的区别

    并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生. 并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生. 并行( ...

  3. 并行性和并发性的区别

    并发性和并行性的区别: 并行性包含同时性和并发性,并行性是指两个或多个事件在同一时刻发生,并发性是指两个或多个事件在同一时间段内发生.并行性简单点说,就好像一个四车道同一时间最多并行行驶四辆车.

  4. 通俗理解并行性和并发性的区别

    并发性和并行性二者容易让初学者糊涂 先看下标准说法 并发性:指两个或多个事件在同一时间间隔发生 并行性:指两个或多个事件在同一时刻发生 这里举个生活中例子: 假如你8:00–8:30吃东西,8:30– ...

  5. python访问数据库如何解决高并发_使用 Python 和 Oracle 数据库实现高并发性

    随着趋势发展的核心转向更多而不是更快发展,最大限度地提高并发性的重要性日益凸显.并发性使得编程模式发生了新的转变,可以编写异步代码,从而将多个任务分散到一组线程或进程中并行工作.如果您不是编程新手并且 ...

  6. 回滚机制_【巨杉数据库SequoiaDB】巨杉 Tech | 并发性与锁机制解析与实践

    01 概述 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性.加锁 ...

  7. oracle并行parallel update两张表_Oracle与并行性 parallel

    Oracle与并行性 并行化操作能力是巨型数据库(Very Large Database,简称VLDB)最重要的特性之一.带有多个CPU的数据库服务器,也被称作SMP,目前是大多数数据库服务器的标准配 ...

  8. JVM 并发性: Java 和 Scala 并发性基础(1)

    转载于:http://www.itxuexiwang.com/a/javajishu/jvm_jdk_yuanmafenxi/2016/0129/50.html?1454076380 处理器速度数十年 ...

  9. 【巨杉数据库SequoiaDB】巨杉 Tech | 并发性与锁机制解析与实践

    01 概述 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性.加锁 ...

  10. CUDA 7 Stream流简化并发性

    CUDA 7 Stream流简化并发性 异构计算是指高效地使用系统中的所有处理器,包括 CPU 和 GPU .为此,应用程序必须在多个处理器上并发执行函数. CUDA 应用程序通过在 streams ...

最新文章

  1. JSP笔记-点击量统计
  2. Profiler 使用说明
  3. Python 网络服务相关 杂记
  4. mysql.user表中Host为%的含义
  5. 方式程0day MS17-010远程溢出漏洞测试
  6. flink的udtf中String[]转String数组
  7. SAP CRM One Order跟踪和日志工具CRMD_TRACE_SET
  8. linux中mac地址路径,MAC地址
  9. 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁...
  10. WPS文字表格自动填充序号
  11. SQL Server设置SQL Server身份验证
  12. 【报告分享】快手男性消费用户洞察-36Kr磁力引擎(附下载)
  13. 关于健身的那点儿事儿
  14. android开发相册代码,Android开发之简单的电子相册实现
  15. 软件测试需要掌握哪些知识?软件测试基础理论
  16. windows下安装PHP的swoole拓展
  17. xelatex+beamer+中文的一个tex例子
  18. 深度相机(五)--Kinect v2.0
  19. R语言中的导出为pdf文件或txt文件的注意事项
  20. 我的第一台智能手机:多普达D600

热门文章

  1. Java笔记:final修饰符
  2. 前端学习之--CSS
  3. PMP 第十章 项目沟通管理
  4. SharePoint读取和设置列表栏的内容
  5. 局域网内抢带宽的工具 破解版 【PSP流量限制软件】
  6. 拓端tecdat|电力消耗模型构建、分析和预测
  7. 拓端tecdat|TensorFlow 2建立神经网络分类模型——以iris数据为例
  8. 拓端tecdat|决策树算法建立电信客户流失模型
  9. 深度学习之神经网络(一)
  10. early stopping softmax批量梯度下降(BGD)手动实现