最近梳理了一下安卓的知识体系,先构建一个整体性的认知,也作为以后的学习路线的依据。 【一、从原理角度出发】1、Activity生命周期和启动模式2、View的事件体系与工作原理3、四大组件的工作过程4、JNI和NDK编程 //5、线程与线程池 //多线程编程、线程同步问题、6、消息机制 //主要是讲 ...
分类:
移动开发 时间:
2019-10-19 20:21:19
阅读次数:
145
Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容。 这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类。当然这些都是并发编程的基本知识,除了使用这些工具以外,Java并发编程中涉及到的技术原理十分丰富。为了更好地把并发知识形成一个体系,也鉴于本人目前也没有能力写出这类文章,于 ...
分类:
编程语言 时间:
2019-10-18 22:25:47
阅读次数:
112
首先,这两者是完全不同的概念,绝对不能混为一谈。1.什么是Java内存模型?Java内存模型是Java语言在多线程并发情况下对于共享变量读写(实际是共享变量对应的内存操作)的规范,主要是为了解决多线程可见性、原子性的问题,解决共享变量的多线程操作冲突问题。多线程编程的普遍问题是:所见非所得无法肉眼检测程序的准确性不同的运行平台表现不同错误很难复现故JVM规范规定了Java虚拟机对多线程内存操作的一
分类:
编程语言 时间:
2019-10-17 20:31:58
阅读次数:
100
CPU CPU 有些应用需要大量计算,会长时间、不间断地占用CPU资源,导致其他资源无法争夺到CPU而响应缓慢,从而带来系统性能问题。比如:代码递归导致的无限循环,正则表达式引起的回溯,JVM频繁的FULL GC,以及多线程编程造成的大量上下文切换等等,这些都有可能导致CPU资源繁忙。 内存 内存 ...
分类:
其他好文 时间:
2019-10-17 17:51:34
阅读次数:
91
这篇文章是上一篇博客的补充,旨在把没有讲清楚的「用户级线程和内核级线程」补充完整。希望读者能对线程有更进一步的了解。 小白最近在学习多线程编程。 网上关于多线程的资料很多,小白很快就把线程的基本概念弄懂了,但关于「用户级线程和内核级线程」的概念,她却怎么也搞不清楚,只好向操作系统基础扎实的小明请教。 ...
分类:
编程语言 时间:
2019-10-13 11:16:22
阅读次数:
65
1、明确目的,为什么要使用多线程?如果是由于单线程读写或者网络访问(例如HTTP访问互联网)的瓶颈,可以考虑使用线程池。如果是对不同的资源(例如SOCKET连接)进行管理,可以考虑多个线程。 2、线程使用中要注意,如何控制线程的调度和阻塞,例如利用事件的触发来控制线程的调度和阻塞,也有用消息来控制的 ...
分类:
编程语言 时间:
2019-10-11 12:36:05
阅读次数:
67
跨线程调用窗体控件 用户不喜欢反应慢的程序。在执行耗时较长的操作时,使用多线程是明智之举,它可以提高程序 UI 的响应速度,使得一切运行显得更为快速。在 Windows 中进行多线程编程曾经是 C++ 开发人员的专属特权,但是现在,可以使用所有兼容 Microsoft .NET 的语言来编写。不过W ...
分类:
编程语言 时间:
2019-10-11 12:21:29
阅读次数:
110
(手机横屏看源码更方便) 问题 (1)创建线程有哪几种方式? (2)它们分别有什么运用场景? 简介 创建线程,是多线程编程中最基本的操作,彤哥总结了一下,大概有8种创建线程的方式,你知道吗? 继承Thread类并重写run()方法 继承Thread类并重写run()方法,这种方式的弊端是一个类只能继 ...
分类:
编程语言 时间:
2019-10-07 13:05:38
阅读次数:
88
Python入门书籍不用看太多,看一本就够。重要的是你要学习Python的哪个方向,或者说你对什么方向感兴趣,因为Python这门语言的应用领域比较广泛,比如说可以用来做数据分析、机器学习,也可以用来做后端开发、还可以做Web开发、前端、人工智能、大数据等等。 所以首先你要对自己有一个定位和规划,而 ...
分类:
编程语言 时间:
2019-09-27 11:03:31
阅读次数:
84
CountDownLatch 1. CountDownLatch 允许一个或多个线程等待其他线程完成操作。 2. CountDownLatch 可以替代 join 的作用,并提供了更丰富的用法。 3. CountDownLatch 的 countDown 方法,N 会减1;CountDownLatc ...
分类:
编程语言 时间:
2019-09-13 10:56:29
阅读次数:
100