原创 iOS使用多線程提高數據併發訪問 之八

性能性能是在應用中使用多線程的主要原因。但是,正如你看到的,如果你使用不當的話,你的應用會有很多問題。你的應用會頻繁的崩潰,如果你不能控制多線程帶來的風險,就像我之前提到的。更進一步的,有些函數不能工作,因爲有些線程會阻塞或永遠等待。因此如

原创 iOS使用多線程提高數據併發訪問 之九

線程同步現在,讓我們轉向多線程另一個非常重要的部分。由於每一個線程都運行在自己的堆棧中,創建自己的對象,那麼你的線程是如何和應用中的其他線程通訊和共享數據的呢?前面提到過,當你在多個線程中共享你的數據結構或對象時是有風險的,因爲很多線程會試

原创 我的友情鏈接

51CTO博客開發

原创 iOS側滑菜單實現

今天做項目的時候,產品經理說要實現類似facebook那樣側滑菜單的效果,其實現在很多app都實現了類似的效果,比如網易新聞,搜狗輸入板等。於是就在網上搜索其實現的原理,雖然也搜到了不少,但是發現它們實現的都過於複雜,代碼看起來實在是費勁,

原创 Android導入第三方靜態庫.a編譯成動態庫.so

在Android開發的時候,經常會使用到用c或c++編寫的第三方的靜態庫。如果有源碼的話,可以直接跟你自己的代碼一去編譯成動態庫so,但是如果沒有源碼的話,你就必須在自己的動態庫so裏面將別人生成好的靜態庫導入進來一起編譯了。我在編譯的時候

原创 算法導論第6章代碼之堆排序

算法:// 對第i個節點構建最大堆 void build_max_heap(int *a, int i, int n) { int max = i; int left = 2 * i + 1; int right =

原创 算法導論第2章代碼

1、插入排序算法:void InsertionSort(int *a, int n) { int i, j; for (i = 1; i < n; i++) { int key = a[i];

原创 抽象工廠模式 java版

一、java版抽象產品A ->  ProductA.java : public interface ProductA { public void fun(); }具體產品A1 -> ProductA1.java :public

原创 iOS側滑菜單實現

今天做項目的時候,產品經理說要實現類似facebook那樣側滑菜單的效果,其實現在很多app都實現了類似的效果,比如網易新聞,搜狗輸入板等。於是就在網上搜索其實現的原理,雖然也搜到了不少,但是發現它們實現的都過於複雜,代碼看起來實在是費勁,

原创 Android學習建議

已經有很多人問我Android要怎麼學,之前qq上聊天感覺都是些隻言片語,我想是時候總結一下,把自己走過的一些路分享給大家,希望對大家有一點點的幫助。我接觸Android也已經好幾年了,現在由於公司發展需要,可能做的比較少了,但是腦海中還依

原创 抽象工廠模式 c++版

抽象產品A  -> ProductA.h  & ProductA.cpp :// // ProductA.h // AbstractFactory // // Created by hejinlai on 13-8-8. /

原创 單例模式(java,c++,objective-c)

一、java版單例類 Singleton.java :public class Singleton { private static Singleton instance = null;

原创 Android導入第三方靜態庫.a編譯成動態庫.so

在Android開發的時候,經常會使用到用c或c++編寫的第三方的靜態庫。如果有源碼的話,可以直接跟你自己的代碼一去編譯成動態庫so,但是如果沒有源碼的話,你就必須在自己的動態庫so裏面將別人生成好的靜態庫導入進來一起編譯了。我在編譯的時候

原创 算法導論第6章代碼之優先級隊列

這裏講述的是用堆實現的最大優先級隊列,建立的是最大堆,主要實現3個算法,一個是抽取對頭元素,也就是整個堆裏面最大的那個數,還有一個是提高某個節點的優先級,最後是往隊尾插入元素。1、建立最大堆void build_max_heap(int *

原创 算法導論第7章代碼

本章講解的是快速排序算法,快速排序有很多變種,不過基本原理是一樣的。int Partition(int *a, int low, int high) { int key = a[low];