自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lonelyVM的博客

code better than talk

  • 博客(14)
  • 收藏
  • 关注

转载 Java多线程编程09 -join方法

在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程将早于子线程结束。这时,如果主线程想等子线程执行完成才结束,比如子线程处理一个数据,主线程想要获得这个数据中的值,就要用到join()方法了。方法join()的作用是等待线程对象销毁。- join方法介绍join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行在A线程中调用了B线程的join()方法时...

2019-12-22 19:40:55 121

原创 Java多线程编程08 -实战等待通知之交叉备份

要求: 创建20个线程(??一共20个线程main不应该是10吗?),十个线程将数据备份到数据库A,十个线程将数据备份到数据库B,且备份A与备份B是交叉进行的。同时还要求有序。// 数据库操作public class DBTools { volatile private boolean prevIsA = false; synchronized public void back...

2019-12-22 19:10:28 120

原创 Java多线程编程07 -线程通信wait()&notify()&生产者消费者模型

线程间通信-等待/通知机制轮询的方法实现 线程间通信,简单的例子就是一个线程死循环查询某个条件是不是满足,非常浪费CPU资源。这里讨论等待/通知机制。在Java语言中,实现等待通知机制主要是用:wait()/notify()方法实现。wait()方法 :wait()方法是使当前执行代码的线程进行等待,wait()方法是Object类的方法,该方法用来将当前线程置入“欲执行队列”(阻塞不是...

2019-12-21 21:41:04 167

原创 Java多线程编程06 -volatile&synchronized比较 &可见性&原子性

-volatilevolatile 主要作用是是变量在多个线程间可见。一个同步死循环的问题主要形式例如:main调用一个方法print(),这个方法根据一个boolean 值判断是不是结束循环,但是这个初始的boolean值是true的,也就是会在方法里一直循环,而把这个值置为false的语句在mian里调用print()的下面,也就是说单线程模式下,main执行不到调用print()下面...

2019-12-19 21:57:42 252 1

原创 Java多线程编程 05-静态锁(类锁)&String锁&锁对象改变

-静态锁(类锁)关键字synchronized修饰到静态static方法上,这样的话是给对应的Class类进行加锁。下面考虑以下情况:两个线程内用类名调用静态加锁方法: 同步业务类:Service , Service中两个静态方法加锁: synchronized public static void printA(); synchronized public static ...

2019-12-19 17:53:49 276

原创 Java多线程编程04 -锁重入&对象监视器

-锁重入关键字synchronized拥有锁重入的功能,也就是当一个线程获得对象锁之后,再次请求该对象锁(调用这个对象加锁的方法)时可以直接获得锁。也就是说在一个synchronized 方法/块内调用本类的其他synchronized方法/块时永远得到锁。例子:public class SyncReUseService { synchronized public void serv...

2019-12-18 22:08:46 131

原创 Java多线程编程03 -对象锁

非线程安全 – 在多个线程对同一对象中的实例变量进行并发访问时产生产生的后果就是脏读,取到的数据被修改过了。线程安全 – 就是获得的值都是同步处理过的。不会出现脏读需要注意的是:非线程安全问题只是存在于“实例变量”(多指类里的属性字段)中,如果访问的数据是一个方法内部的私有变量(临时变量或方法内部声明的变量),那就没有安全问题了。-synchronized 同步方法两个线程同时访问一个同一...

2019-12-18 14:57:43 112

原创 java多线程编程02 -暂停线程&yield方法&优先级&守护进程

-暂停线程suspend() 可以暂停线程, resume()恢复线程的执行。suspend() 其实已经是过期作废的方法,极易造成公共的同步对象的独占,使得其他线程无法访问公共的同步对象。独占例子1:在一个类Tee里面,给一个方法上了锁synchronized public void inStr() { ++i; Thread.currentThread().suspen...

2019-12-17 17:54:25 193

原创 java多线程编程01 - 基本API&停止线程

- isAlive()判断当前线程是不是处于活动状态(运行态或者就绪态)- getXXgetName(), getId() 取得进程名字和唯一标识。- currentThread()可以返回当前代码段是在被哪个线程执行的信息。注意和 this 进行区别: this执行的是当前的新线程的对象, currentThread()指向的是当前执行的线程对象。 在新线程的构造方法里,调用this...

2019-12-17 12:16:33 195 2

原创 java多线程编程00 -第一个多线程程序

-第一个线程的程序public static void main 这就是一个JVM创建的线程public static void main(String[] args) { // 控制台会输出 "main" 这个字符串 System.out.println(Thread.currentThread().getName());}实现多线程的两种方式:1.继承Thread类 ...

2019-12-16 22:27:32 138

转载 什么是I/O多路复用、事件驱动、reactor模式

转载链接: https://www.zhihu.com/question/28594409首先,要从常用的IO操作谈起,比如read和write,通常IO操作都是阻塞I/O的,也就是说当你调用read时,如果没有数据收到,那么线程或者进程就会被挂起,直到收到数据。这样,当服务器需要处理1000个连接的的时候,而且只有很少连接忙碌的,那么会需要1000个线程或进程来处理1000个连接,而1000...

2019-12-16 17:28:32 559

转载 UNIX 与 Linux 区别联系

UNIX 与 Linux 区别联系转载自: http://c.biancheng.net/view/707.htmlUNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来...

2019-12-16 15:20:09 196

转载 进程之间的通信

进程通信今天的这篇文章,讲给大家详细着讲解他们是如何通信的,让大家尽量能够理解他们之间的区别、优缺点等1、管道我们来看一条 Linux 的语句netstat -tulnp | grep 8080学过 Linux 命名的估计都懂这条语句的含义,其中”|“是管道的意思,它的作用就是把前一条命令的输出作为后一条命令的输入。在这里就是把 netstat -tulnp 的输出结果作为 grep 8...

2019-12-15 21:43:56 130

原创 linux下执行并查看后台进程,jobs,ps,top命令 的区别

linux下执行并查看后台进程,jobs,ps,top命令 的区别背景:王晓茹老师布置的数据挖掘(机器学习)的课程实验 - - 100万条新闻文本的分类。老师要求了两种方法,朴素贝叶斯和SVM,100万条新闻貌似NB在个人电脑上跑得动,但是SVM就够呛了。我们实验室的服务器刚好又关了,就用队友他们组的服务器跑。1. 后台运行用Xshel连上服务器之后,想让进程在后台跑,一般有两种 nohu...

2019-12-15 21:23:11 3379

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除