Wesley13 Wesley13
3年前
java锁学习(一)
作用能够保证同一时刻,最多只有一个线程执行该段代码,以达到并发安全的效果主要用于同时刻对线程间对任务进行锁地位synchronized是JAVA的原生关键字,是JAVA中最基本的互斥手段,是并发编程中的元老角色不使用并发的后果不使用并发会导致多线程情况下,同一个数据被多个线程同时更改,造成结果和预期不一致
Wesley13 Wesley13
3年前
java多线程的常见例子
一.相关知识:Java多线程程序设计到的知识:(一)对同一个数量进行操作(二)对同一个对象进行操作(三)回调方法使用(四)线程同步,死锁问题(五)线程通信 等等二.示例一:三个售票窗口同时出售20张票;程序分析:1.票数要使用同一个静态值 2.为保证不会出现卖出同一个票数,要java多线程同步锁。设计思路:1.创建
Wesley13 Wesley13
3年前
java中volatile关键字的理解
一、基本概念Java内存模型中的可见性、原子性和有序性。可见性:  可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。  可见性,是指线程之间的可见性,一个线
御弟哥哥 御弟哥哥
4年前
android view 常用的6种 View 的滑动方法
View的滑动是Android实现自定义控件的基础,实现View滑动有很多种方法,在这里主要讲解6种滑动方法,分别是layout()、offsetLeftAndRight()与offsetTopAndBottom()、LayoutParams、动画、scollTo与scollBy,以及Scroller。  View的滑动是Android
九路 九路
3年前
Android窗口管理框架:Android应用视图的管理者Window
Android窗口管理框架:Android应用视图的管理者Window文章目录一窗口类型二窗口参数三窗口模式四窗口回调五窗口实现从这篇文章开始,我们来分析和Window以及WindowManager相关的内容,Abstractbaseclassforatoplevelwindowlookandbehaviorpolic
Stella981 Stella981
3年前
Android拨号键盘增加魔力爱心数字
目的:在拨号键盘输入\\5201314\\启动自定义的某个(隐藏)应用,大胆说出你的爱!1\.修改Android源码dialer相关代码,自定义android\_secret\_code并在afterTextchanged函数中发出处理广播:vim packages/apps/Dialer/src/
Stella981 Stella981
3年前
MediaScannerService研究
MediaScannerService研究侯亮(本文以Android5.1为准)1概述MediaScannerService是Android平台提供的一个用于扫描手机中多媒体文件的应用级service。它并不是系统服务。MediaScannerService和MediaProvider有着非常紧密的关系,因为扫
Stella981 Stella981
3年前
Skynet 设计综述
1.多线程模式,可以使得状态共享、数据交换更加高效。而多线程模型的诸多弊端,比如复杂的线程锁、线程调度问题等,都可以通过减小底层的规模,精简设计,最终把危害限制在很小的范围内。2.做为核心功能,Skynet仅解决一个问题:把一个符合规范的C模块,从动态库(so文件)中启动起来,绑定一个永不重复(即使模块退出)的数字id做为其handl
Stella981 Stella981
3年前
Kafka producer使用注意
最近在测试kafka性能的时候特别对kafka的producer端进行了一些扩展,本想着针对多个业务开发多个producer进行并行的生产数据,并通过统一的线程池进行管理,结果在用jconsole进行观察的时候,发现线程数一路飙升。本以为一个简单的发送端程序却花了不少精力。造成线程上涨的主要原因是有两个线程对象不断的被创建,并且暂时无法销毁。一个叫sen
Stella981 Stella981
3年前
ReentrantReadWriteLock读写锁详解
一、读写锁简介现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。 针对这种场景,JAVA的并发包提供了读写锁ReentrantReadW