- 浏览: 1119906 次
-
文章分类
- 全部博客 (379)
- S2SH (16)
- stuts2 (0)
- java语言 (81)
- JSP (17)
- <html>元素 (11)
- javaweb (4)
- web容器 (3)
- ext (23)
- javaScript (48)
- ant (1)
- liferay (1)
- sql (9)
- css (42)
- 浏览器设置 (3)
- office_world (1)
- eclipse (4)
- 其它 (28)
- 操作系统 (5)
- android (6)
- Struts2 (11)
- RegEx (3)
- mysql (5)
- BigDATA (1)
- Node.js (1)
- Algorithm (10)
- Apache Spark (1)
- 数据库 (5)
- linux (2)
- git (1)
- Adobe (3)
- java语言,WebSocket (1)
- Maven (3)
- SHELL (1)
- XML (2)
- 数学 (2)
- Python (2)
- Java_mysql (1)
- ReactJS (6)
- 养生 (4)
- Docker (1)
- Protocols (3)
- java8 (2)
- 书籍 (1)
- Gradle (2)
- AngularJS (5)
- SpringMVC (2)
- SOAP (1)
- BootstrapCSS (1)
- HTTP协议 (1)
- OAuth2 (1)
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
1、背景知识
关于进程和线程的区别,总有人喜欢这样问。
这就像问 java中 final 、 finally 、finalize 的区别一样滑稽。(只是因为这3个关键字的开头都含有f、i、n、a、l这几个字母么?)
进程和线程是2种不同的程序运行的机制。2者实现的方式不同。基本上没有可比性。
用进程设计实现的程序,跑不了所谓的线程。即使有线程的概念,也和使用线程实现的程序中线程的概念相差甚远。2者根本不是一个东西。
如果要谈区别,说:进程设计理念 和 线程设计理念 有何区别。我想还不多。不要钻进进程里谈进程和线程,也不要钻进线程里谈进程和线程。
java虚拟机是线程实现的。
2、死锁
在一个线程中,需要锁定2个及以上对象,但是需要去锁定的对象,被别的线程锁定,而别的线程依赖当前线程已锁定的对象。
TestDeadLock.java
-
关于进程和线程的区别,总有人喜欢这样问。
这就像问 java中 final 、 finally 、finalize 的区别一样滑稽。(只是因为这3个关键字的开头都含有f、i、n、a、l这几个字母么?)
进程和线程是2种不同的程序运行的机制。2者实现的方式不同。基本上没有可比性。
用进程设计实现的程序,跑不了所谓的线程。即使有线程的概念,也和使用线程实现的程序中线程的概念相差甚远。2者根本不是一个东西。
如果要谈区别,说:进程设计理念 和 线程设计理念 有何区别。我想还不多。不要钻进进程里谈进程和线程,也不要钻进线程里谈进程和线程。
java虚拟机是线程实现的。
2、死锁
在一个线程中,需要锁定2个及以上对象,但是需要去锁定的对象,被别的线程锁定,而别的线程依赖当前线程已锁定的对象。
TestDeadLock.java
public class TestDeadLock implements Runnable{ public int flag =1; static Object o1 = new Object(); static Object o2 = new Object(); public void run(){ System.out.println("flag=" +flag); if(flag == 1){ synchronized(o1){ try{ Thread.sleep(500); }catch(Exception e){ e.printStackTrace(); } synchronized(o2){ System.out.println("1"); } } } if(flag == 0){ synchronized(o2){ try{ Thread.sleep(500); }catch(Exception e){ e.printStackTrace(); } synchronized(o1){ System.out.println("0"); } } } } public static void main(String[] args){ TestDeadLock td1 = new TestDeadLock(); TestDeadLock td2 = new TestDeadLock(); td1.flag = 1; td2.flag = 0; Thread t1 = new Thread(td1); Thread t2 = new Thread(td2); t1.start(); t2.start(); } }
-
发表评论
-
java 将文件夹所有的文件合并到指定的文件夹下
2020-06-30 19:17 1103场景:将文件夹所有的文件合并到指定的文件夹下 另外:如果想效 ... -
多线程-线程池的四种创建方式
2020-04-01 18:38 528多线程-线程池的四种创建方式 https://blog.cs ... -
Java基础之:nio
2019-11-13 15:38 514一、理论讲解: 史上最强Java NIO入门:担心从入门到放弃 ... -
Java 分布式之:RPC 基本概念
2019-11-13 15:07 490转载: https://www.jianshu.com/p/ ... -
Java之 volatile 关键字原理详解
2019-11-07 15:36 584一、什么是 volatile ? ... -
POI实现excell批注背景图片(仿html浮窗显示图片)
2019-10-21 08:17 739POI实现excell批注背景图片(仿html浮窗显示图片) ... -
Java之设计模式之 Observer 观察者
2019-07-04 17:21 1112观察者设计模式 Java 已经实现了该模式,并且提供了使用类 ... -
HashMap, LinkedHashMap and TreeMap
2019-03-01 11:04 694https://stackoverflow.com/a/177 ... -
Java lib 操作 excel 插入图片
2019-01-19 12:46 892https://poi.apache.org/componen ... -
数据库连接池C3P0
2018-05-29 16:50 914一、名字的由来 很多 ... -
Java8之集合(Collection)遍历 forEach()、stream()
2018-05-29 14:39 20771package java8.collections; ... -
Junit Vs main on "java.util.concurrent.Executors"
2017-11-10 16:44 863Same code with different result ... -
Java之大数据学习路线
2017-11-03 10:08 5735三个月大数据研发学习 ... -
Java中创建对象的5种方式
2017-10-26 14:21 849一、Java之5种创建对象的方式 ————————————— ... -
Log4j和Slf4j的比较
2017-06-23 12:41 1429一直搞不清 Log4j 和 SLF4j 的关系。今天才若有所 ... -
Java之Java7新特性之try资源句式
2017-04-20 14:58 5398Java之Java7新特性之try资源句式 一、【try资源 ... -
Java之 java.util.concurrent 包之ExecutorService之submit () 之 Future
2017-03-04 21:27 3854一、如何使用 ExecutorService.submit() ... -
Java之 java.util.concurrent 包之Executor与ExecutorService
2017-03-04 21:18 2715一、问题: execute() 与 submit() 的区别? ... -
JAVAEE之单用户登录
2017-02-05 11:55 1066单用户登录是系统中数据一直性的解决方案之一。 问题背景: 试 ... -
Java之多线程之线程池之线程重复使用
2017-02-04 13:33 5578一、问题背景 在使用多线程时,如果要开启一个任务,则就需要新 ...
相关推荐
水泥袋检测系统源码和数据集:改进yolo11-DCNV4
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
使用Plotly绘制散点图_柱状图_折线图_三维图_饼状图
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
光敏电阻接线图
MAX30102心率血样传感器原理图
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
胎儿脑部异常检测系统源码和数据集:改进yolo11-convnextv2
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
本项目为基于Kotlin语言的安卓Camera2拍照录像设计源码,总计包含48个文件,涵盖17个XML配置文件、10个WEBP图片文件、5个Kotlin源代码文件、3个Git忽略文件、3个Gradle配置文件、2个Markdown文档、2个属性文件、1个Gradle脚本文件、1个APK安装包以及1个JSON文件。该源码适用于实现安卓设备的拍照和录像功能。
【C#】设计模式大作业_pgj
本项目是一款基于ruoyi框架开发的校园后勤Vue前端设计源码,包含358个文件,涵盖122个Vue组件、93个SVG图标、87个JavaScript脚本、25个PNG图片、10个SCSS样式表、3个批处理脚本、3个JPG图片、2个HTML页面、2个JSON配置文件、2个备份文件。该代码适用于校园后勤管理系统,旨在提升校园后勤服务效率。
该项目是基于Spring Boot框架的校园外卖点餐系统设计源码,包含162个文件,包括142个Java源文件、16个XML配置文件、2个YML配置文件、1个Git忽略文件和1个XLSX文件。系统采用前后端分离架构,结合Mybatis、Spring Cache、阿里云OSS、Swagger、POI和WebSocket等技术,支持菜品、套餐、订单管理、支付、报表统计及用户催单等功能。系统分为后台管理端和用户端,用户端通过微信小程序实现。我的主要工作包括管理端员工及菜品信息的增删改查功能。
基于QT框架的OpenCV人脸识别
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
图像处理新思路:微生物菌落图像分割
该项目是一款基于Python核心的跨语言智能补全插件YouCompleteMe的设计源码,包含131个文件,涵盖57个Python文件、23个Vim配置文件、6个Markdown文件、5个C/C++源文件、3个YAML配置文件、3个文本文件以及少量其他类型的文件。该插件支持Python、C++、Shell、C等多种编程语言,旨在为开发者提供高效的代码补全功能。
英国MIDNORCO沉积物岩性数据集 内容: Fyfe, RM (2014) 发布的数据集详细记录了位于英国的MIDNORCO沉积物岩心的岩性特征。此数据集共包含12个数据点,提供了关于该地区地质结构的重要信息。通过访问以下链接可获取完整数据集:"" ()。这些数据对于研究古环境变化、地质年代测定以及了解地球历史具有重要意义。
内容: 本数据集记录了来自Filchner Trough的威德尔海豹(标记为FIL2014_wed_a_m_03)的潜水时长信息,由Bornemann H、Oosthuizen WC、Schröder M等人于2014年发布。该数据集包含了2033个数据点,提供了对单只威德尔海豹潜水行为的详细观察。通过访问以下链接可以获取完整的数据集详情:"" ()。这项研究有助于我们更好地理解威德尔海豹在南极海域中的生活习性与行为模式。
Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作