1、简述synchronized和java.util.concurrent.locks.Lock的异同?解答:主要相同点:Lock能完成synchronized所实现的所有功能主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Loc...
分类:
编程语言 时间:
2015-08-12 23:27:12
阅读次数:
136
synchronized是属于jvm层面的,如果遇到异常,jvm会自动释放锁.lock锁的释放是需要程序员操作,如果不释放就会产生死锁在竞争不激烈的情况下,偶尔会有同步的情况发生,如果用synchronized会好一点,如果竞争很激烈的情况下,使用reentrantLock会好一点.package....
分类:
其他好文 时间:
2015-08-11 22:53:24
阅读次数:
177
今天闫老师带大家学习了java的集合 ArrayList 长度是动态的,不像数组要指定长度,jvm自带自动释放存储功能,高端==之后把之前用对象数组写的电话本管理系统改造成了用ArrayList写的,不需要设定长度和最大下标~ArrayList可以装各种类型的元素,声明如下ArrayList al=...
分类:
其他好文 时间:
2015-08-11 11:50:30
阅读次数:
84
智能指针概述:
智能指针用来管理动态对象。其行为类似于常规指针,重要的区别是:它负责自动释放所指向的对象。
C++ 11标准库提供两种智能指针:shared_ptr、unique_ptr
区别是:shared_ptr允许多个指针指向同一个对象;unique_ptr则独占所指向的对象。
另外,还有一种weak_ptr的伴随类,它是一种弱引用,指向shared_ptr所管理的对象。
...
分类:
编程语言 时间:
2015-08-10 12:07:49
阅读次数:
232
场景: 服务端的应用程序创建了一个线程来接收客户端发来的消息,当接收到消息后,需要弹出一个新的窗体,作为响应操作等。现象: 新创建的窗体呈现挂起、假死,或者一闪而过的现象。原因: 新创建的响应窗体是由子线程创建的,而.net平台下,子线程执行完毕后,会自动释放资源,同样的,这个新创建的窗体也会...
分类:
编程语言 时间:
2015-08-06 12:34:51
阅读次数:
122
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内...
分类:
编程语言 时间:
2015-08-05 14:43:21
阅读次数:
135
1.ObjC中对象是存储在堆中的,系统并不会自动释放堆中的内存,但是基本类型是由系统自己管理的,放在栈上。2.要开发一个程序并不难,但是优秀的程序则更测重于内存管理,它们往往占用内存更少,运行更加流畅。3.野指针就是指针所指向的内存地址已经被系统回收,而指针没有被置为空;内存泄露就是该被回收的对象没...
分类:
移动开发 时间:
2015-08-04 02:01:10
阅读次数:
134
RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。IndexRunLoop ...
分类:
移动开发 时间:
2015-08-03 16:25:37
阅读次数:
358
总结标号主题内容一autoreleaseautorelease基本概念/自动释放池/autorelease基本使用二autorelease注意事项注意点/应用场景三ARC什么是ARC/ARC的注意点和优点/ARC的判断原则/ARC机制判断/ARC快速使用四ARC下的内存管理ARC下单对象内存管理/多...
分类:
其他好文 时间:
2015-08-03 00:56:19
阅读次数:
243
1. 线程执行轨迹
1) 同步方式(非分离状态):创建线程之后调用pthread_join函数等待其终止,并释放线程资源。
2) 异步方式(分离状态):无需创建者等待,线程终止后自行释放资源
int pthread_detach (pthread_t thread); 使thread参数所标识的线程进入分离(DETACHED)状态。处于分离状态的线程终止后自动释放线程资源,且...
分类:
编程语言 时间:
2015-07-30 23:19:31
阅读次数:
204