- 前言 在Android系统中,我们通常会通过上下文对象Context获取一些系统级别的服务。而这些服务会在适当的时候以单例的形式注册在系统中,那么我们就可以通过Context的getSystemService(String name)获取。 以下的源码是Android8.0 API 26。 LayoutInflater 今天我们来看一下Android源码中的设计... 前言 在Android系统中,我们通常会通过上下文对象Context获取一些系统级别的服务。而这些服务会在适当的时候以单例的形式注册在系统中,那么我们就可以通过Context的getSystemService(String name)获取。 以下的源码是Android8.0 API 26。 LayoutInflater 今天我们来看一下Android源码中的设计...
- Java8新特性[并行流与顺序流] 前言并行流Fork/Join框架概念采用 工作窃取 模式 总结 前言 这篇博文我们讲并行流和顺序流,感兴趣的同学可以了解一下。 并行流 并行流就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块的流 Java8中将并行流进行了优化,我们可以很容易的对数据进行并行操作,Stream API可... Java8新特性[并行流与顺序流] 前言并行流Fork/Join框架概念采用 工作窃取 模式 总结 前言 这篇博文我们讲并行流和顺序流,感兴趣的同学可以了解一下。 并行流 并行流就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块的流 Java8中将并行流进行了优化,我们可以很容易的对数据进行并行操作,Stream API可...
- 线程安全性 (1)java.util.concurrent.atomic 包 AtomicInteger 、 AtomicLong 、LongAdder的使用 @Slf4j@ThreadSafepublic class AtomicExample2 { //请求次数 pri... 线程安全性 (1)java.util.concurrent.atomic 包 AtomicInteger 、 AtomicLong 、LongAdder的使用 @Slf4j@ThreadSafepublic class AtomicExample2 { //请求次数 pri...
- 这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第 IV 篇,本文主要讲了以下问题:中断和中断处理程序的概念与实现原理、Linux 中的下半部以及内核同步方法。 0x00 中断和中断处理程序 I 中断 中断是一种特殊的电信号,由硬件发向处理器,处理器接收到中断时,会马上箱操作系统反映,由操作系统进行处理。中断随时可以产生,因此,内核随时可能因为新... 这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第 IV 篇,本文主要讲了以下问题:中断和中断处理程序的概念与实现原理、Linux 中的下半部以及内核同步方法。 0x00 中断和中断处理程序 I 中断 中断是一种特殊的电信号,由硬件发向处理器,处理器接收到中断时,会马上箱操作系统反映,由操作系统进行处理。中断随时可以产生,因此,内核随时可能因为新...
- 死锁编码及定位分析 概念产生死锁的原因死锁代码如何排查死锁 概念 死锁是指两个或多个以上的进程在执行过程中,因争夺资源而造成一种互相等待的现象,若无外力干涉那他们都将无法推进下去,如果资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁 产生死锁的原因 系统资源不足进程运行推进的顺序不对资源分配不当 ... 死锁编码及定位分析 概念产生死锁的原因死锁代码如何排查死锁 概念 死锁是指两个或多个以上的进程在执行过程中,因争夺资源而造成一种互相等待的现象,若无外力干涉那他们都将无法推进下去,如果资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁 产生死锁的原因 系统资源不足进程运行推进的顺序不对资源分配不当 ...
- 假如你的程序一边从网络读取数据,一边向网络发送数据。如何在代码中同时执行几个不同的任务?根据前面的知识,我们知道可以通过创建多几个子进程来做这些事。但是创建进程很花时间,而且不同子进程之间共享数据很不方便。这时我们需要线程来帮我们解决这个问题。 如何创建线程呢? 我们有很多线程库可以用,其中最流行的就是POSIX线程库,也叫pthread 。可以在类Unix系统上使... 假如你的程序一边从网络读取数据,一边向网络发送数据。如何在代码中同时执行几个不同的任务?根据前面的知识,我们知道可以通过创建多几个子进程来做这些事。但是创建进程很花时间,而且不同子进程之间共享数据很不方便。这时我们需要线程来帮我们解决这个问题。 如何创建线程呢? 我们有很多线程库可以用,其中最流行的就是POSIX线程库,也叫pthread 。可以在类Unix系统上使...
- Android4.0之后,网络访问这些都是要放在自己开的线程里,然后在主线程里进行访问的。就我所知的有两种方法。一种是自己new一个线程,然后通过Handler机制进行访问;另外一种是用异步任务AsyncTask的方法。 Asy... Android4.0之后,网络访问这些都是要放在自己开的线程里,然后在主线程里进行访问的。就我所知的有两种方法。一种是自己new一个线程,然后通过Handler机制进行访问;另外一种是用异步任务AsyncTask的方法。 Asy...
- 我们新建了AIDL文件后,再build一下项目,就会生成编译后的AIDL,如: // IMyAidlInterface.aidl package com.wong.remoteservice; // Declare any non-default types here with import statements interface IMyAidlInterface ... 我们新建了AIDL文件后,再build一下项目,就会生成编译后的AIDL,如: // IMyAidlInterface.aidl package com.wong.remoteservice; // Declare any non-default types here with import statements interface IMyAidlInterface ...
- 基础框架搭建和并发模拟工具,代码 (1)基础框架搭建 码云项目 :https://gitee.com/dzxmy/concurrency (2)并发模拟 (3)CountDownLatch 通常用来 保证 几个线程执行完成之后,再执行其他的代码 (4)Semaphore 控制同一时刻的并发... 基础框架搭建和并发模拟工具,代码 (1)基础框架搭建 码云项目 :https://gitee.com/dzxmy/concurrency (2)并发模拟 (3)CountDownLatch 通常用来 保证 几个线程执行完成之后,再执行其他的代码 (4)Semaphore 控制同一时刻的并发...
- 进程之死 在linux的终端正在运行的程序,用户按了ctrl-C,程序就停止运行了。为什么ctrl-C可以彻底杀死程序?是因为当操作系统从键盘读取数据时,发现用户按了ctrl-C时,就会向程序发送中断信号。 信号是一条短消息,即一个整型值。当信号到来时,进程必须停止手中一切工作去处理信号。进程会查看信号映射表,表中每个信号都对应一个信号处理器函数。中断信号的默认信号... 进程之死 在linux的终端正在运行的程序,用户按了ctrl-C,程序就停止运行了。为什么ctrl-C可以彻底杀死程序?是因为当操作系统从键盘读取数据时,发现用户按了ctrl-C时,就会向程序发送中断信号。 信号是一条短消息,即一个整型值。当信号到来时,进程必须停止手中一切工作去处理信号。进程会查看信号映射表,表中每个信号都对应一个信号处理器函数。中断信号的默认信号...
- 参考博客 :https://blog.csdn.net/LQL_King/article/details/77146647 Volatile 理解volatile特性的一个好方法是把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。下面通过具体的示例来说明,示例代码如下。 class VolatileFeaturesExample {v... 参考博客 :https://blog.csdn.net/LQL_King/article/details/77146647 Volatile 理解volatile特性的一个好方法是把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。下面通过具体的示例来说明,示例代码如下。 class VolatileFeaturesExample {v...
- 不可变对象、同步容器、juc并发容器 (1)不可变对象: 不可变对象需要满足的条件对象创建以后其状态就不能修改对象所有域都是final类型对象时正确创建(在对象创建期间,this引用没有溢出) final 关键字:类、方法、变量 修饰类:不能被继承 修饰方法:锁定方法不能被继承类修改 ,效率 修饰变量:基本数据类型变量,引... 不可变对象、同步容器、juc并发容器 (1)不可变对象: 不可变对象需要满足的条件对象创建以后其状态就不能修改对象所有域都是final类型对象时正确创建(在对象创建期间,this引用没有溢出) final 关键字:类、方法、变量 修饰类:不能被继承 修饰方法:锁定方法不能被继承类修改 ,效率 修饰变量:基本数据类型变量,引...
- 有一些对象其实我们只需要一个就够了,比如线程池、缓存、对话框、处理偏好设置、注册表的对象、日志对象、充当打印机、显卡等设备的驱动程序的对象。如果制造出多个,反而会导致许多问题。 单例模式定义 确保一个类只有一个实例,并提供一个全局访问点。 经典的单例模式实现 第一步:利用一个静态变量来记录Singleton类的唯一实例。 第二步:把构造器声明为私有的,只有在Si... 有一些对象其实我们只需要一个就够了,比如线程池、缓存、对话框、处理偏好设置、注册表的对象、日志对象、充当打印机、显卡等设备的驱动程序的对象。如果制造出多个,反而会导致许多问题。 单例模式定义 确保一个类只有一个实例,并提供一个全局访问点。 经典的单例模式实现 第一步:利用一个静态变量来记录Singleton类的唯一实例。 第二步:把构造器声明为私有的,只有在Si...
- 大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客... 大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客...
- 多线程并发拓展 (1)死锁 public class DeadLockTest implements Runnable { private int flag ; private static Object o1=new Object(); private static Object o... 多线程并发拓展 (1)死锁 public class DeadLockTest implements Runnable { private int flag ; private static Object o1=new Object(); private static Object o...
上滑加载中
推荐直播
-
GaussDB管理平台TPOPS,DBA高效运维的一站式解决方案
2024/12/24 周二 16:30-18:00
Leo 华为云数据库DTSE技术布道师
数据库的复杂运维,是否让你感到头疼不已?今天,华为云GaussDB管理平台将彻底来改观!本期直播,我们将深入探索GaussDB管理平台的TPOPS功能,带你感受一键式部署安装的便捷,和智能化运维管理的高效,让复杂的运维、管理变得简单,让简单变得可靠。
回顾中 -
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
2025/01/08 周三 16:30-18:00
Yawei 华为云开发工具和效率首席专家 Edwin 华为开发者空间产品总监
数字化转型进程持续加速,驱动着技术革新发展,华为开发者空间如何巧妙整合鸿蒙、昇腾、鲲鹏等核心资源,打破平台间的壁垒,实现跨平台协同?在科技迅猛发展的今天,开发者们如何迅速把握机遇,实现高效、创新的技术突破?DTT 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
回顾中
热门标签