什么叫内存可见性: 一个线程对共享变量值的修改,能够及时的被其他线程看到。 什么又叫共享变量: 如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量 在Java中,所有实例域、静态域和数组元素都存储在堆内存中,堆内存在线程之间共享。 局部变量(Local Variabl ...
分类:
编程语言 时间:
2018-09-21 18:26:36
阅读次数:
143
本文希望达到的目标: 一、多线程的基本认识 多线程编程的目的:并行处理子任务,大幅度地提升整个任务的效率。 同一个进程中的线程,共享相同的运行环境,共享同一片数据空间,所以线程间的通讯笔进程间的通信更简单,但是这样的共享是会有危险的,如果多线程共同访问同一数据,因为访问顺序的不同,可能会导致结果不一 ...
分类:
编程语言 时间:
2018-09-16 15:23:06
阅读次数:
256
类ReentranLock具有万川互斥排他的效果,即同一时间只有一个线程在执行ReentrantLock.lock()方法后面的任务。这样虽然保证了实例变量的线程安全性, 但效率却是非常低下的。所以在jdk中提供了一种读写锁ReentrantReadWriteLock类,使它可以加快运行效率,在某些 ...
分类:
编程语言 时间:
2018-08-18 18:38:45
阅读次数:
194
公平与非公平锁:锁lock分为 公平锁和非公平锁,公平锁表示现场获取锁的顺序是按照线程加锁的顺序来分配的, 即先来先得的FIFO先进先出顺序。而非公平锁就是一种获取锁的抢占机制,是随机获得的锁的,和公平锁不一样的就是先来 不一定先得到锁,这个方式可能造成某些线程一直拿不到锁。 首先来验证公平锁:创建 ...
分类:
编程语言 时间:
2018-08-18 13:25:49
阅读次数:
233
Python学习 1. Python学习---Python安装与基础1205 2. Python学习---PyCharm的使用学习 3. Python学习---Python数据类型1206 4. Python学习---range/for/break/continue简单使用 5. Python学习-... ...
分类:
编程语言 时间:
2018-08-16 00:48:17
阅读次数:
147
1、线程相关概念 1)、线程与进程的区别 线程是操作系统调度的最小单元,也叫轻量级进程,而进程是操作系统中的应用程序,在进程中可以创建多个线程。 2)、上下文切换 我们知道现代处理器都是多核的,几核处理器只能同时处理几个线程,多线程执行程序看起来是同时进行,实际上是CPU在多个线程之间快速切换执行, ...
分类:
编程语言 时间:
2018-08-12 00:31:25
阅读次数:
237
用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。 很多人都对其中的一些概念不 ...
分类:
编程语言 时间:
2018-08-09 01:18:53
阅读次数:
203
Thread.sleep(毫秒,纳秒),控制当前线程休眠若干毫秒1秒=1000毫秒1秒=1000*1000*1000纳秒1000000000newThread(){publicvoidrun(){for(inti=0;i<10;i++){System.out.println(getName()+"...aaaaaaaaaaaaaaaaaaaaaa");try{Thread.sleep(10)
分类:
编程语言 时间:
2018-08-08 19:54:47
阅读次数:
147
//1,定义一个类实现Runnable//2,重写run方法//3,将要执行的代码写在run方法中//4,创建Runnable的子类对象//5,将其当作参数传递给Thread的构造函数//6,开启线程publicclassAppiumpage{publicstaticvoidmain(String[]args){MyRunnerablemr=newMyRunnerable();Threadt=ne
分类:
编程语言 时间:
2018-08-08 14:53:50
阅读次数:
144
开启多线程/***@paramargs*/publicstaticvoidmain(String[]args){MyThreadmt=newMyThread();//4,创建Thread类的子类对象mt.start();//5,开启线程for(inti=0;i<1000;i++){System.out.println("bb");}}}classMyThreadextendsThread{/
分类:
编程语言 时间:
2018-08-08 14:51:26
阅读次数:
123