原创 樂觀鎖與悲觀鎖
樂觀鎖: 總是認爲在讀取的時候認爲沒有其他線程在修改 因此不加鎖 但是在修改的時候必須獲取鎖 也就是多個線程同時修改時,存在鎖競爭 鎖的實現方式也是自旋鎖(CAS) 悲觀鎖: 總是假設最壞的情況,每次讀取都有其他線程在修改數據 因此,每次
原创 java中的synchronized
synchronized同步塊 參數就是鎖,同一個對象代表同一個鎖。具體含義就是那個對那個對象的操作需要同步那參數一般就是誰
原创 golang實現高性能strip,去除字符串兩端無用字符集
直接上代碼: package main import "fmt" func strip(s_ string, chars_ string) string { s , chars := []rune(s_) , []rune(ch
原创 python中的for else的原理
python中的for else的原理是, for語句跳出的原則是因爲迭代器拋出了StopIteration異常,即 try: while True: temp=next(iterator) do
原创 python獲取函數信息
inspect.stack(), inspect.signature(), sys._getframe()等api應該可以獲取調用my_super的函數的第一個參數
原创 利用配置組策略解決Chrome瀏覽器第三方擴展被停用的問題
首先根據以下代碼生成文件chrome.adm CLASS MACHINE CATEGORY !!google CATEGORY !!googlechrome KEYNAME "Software\Policies\
原创 python獲取屏幕截圖並轉換爲numpy數組
我們一般獲取屏幕截圖就是爲了圖像檢測或者識別,但是通常調用第三方庫只能獲取截圖的圖片,不能直接獲取其numpy數組,因爲如果將截圖保存爲圖片再讀取那麼不光速度慢,而且圖片可能會有像素損失,所以並不好,下面給出截圖並轉換爲numoy數組的方
原创 python中的function函數對象
python中一切皆對象,函數也是,那麼函數對象有什麼特點呢? 最重要的是函數有兩個特點: 1.函數實現了__call__方法; 2.函數實現了__get__方法; 爲什麼說實現了這兩個方法很重要呢?python是一個動態語言,你在使用對
原创 用python實現KNN算法
knn是最簡單的分類算法,基於經驗,利用各種距離進行分類 下面給出一種簡單的實現: ''' 手動實現KNN算法 ''' import numpy as np class KNN: def __init__(self,exp
原创 python內置裝飾器property、classmethod、staticmethod的實現原理
這三個裝飾器的作用: property將方法變爲屬性; classmethod將實例方法變爲類方法; staticmethod將實例方法變爲靜態方法; 知道作用後我們就直接使用python實現: class P
原创 python使用裝飾器實現單例模式
直接上代碼: 第一種使用函數裝飾器實現並且使用鎖保證線程安全: #不使用鎖實現 def SingleInstance(cls): def new(cls,*args,**kwargs): if not hasa
原创 python中的迭代器
python中的迭代器,正如python一樣簡單,任何對象只要擁有 __iter__ 屬性即可,該屬性是一個方法,且該方法返回一個擁有 __next__ 方法對象即可。 任何對象必須滿足上面所述兩個原則才能成爲迭代器。 舉個例子:py
原创 萬能爬蟲框架
對於爬蟲大部分情況下都是請求頭的構造很難,難就難在你必須分析js代碼,看看header中有那些驗證信息,這些驗證信息是怎麼生成的,然後再在Python中寫出生成的方法,這樣就能構造出正確的請求頭,有了正確的請求頭,就一定能請求成功,但是對
原创 關於Python的多態最重要的
首先也是最重要的是python不支持多態,也不用支持多態,直接點說多態就是一個對象被不同的類型引用就表現出不同的形態,但是在Python中引用沒有固定類型的,引用是可變的,所以對於任何一個對象只有一種形態就是它本身,不會有第二種形態,所以
原创 超簡單理解卷積神將網絡
人工智能發展到現在,出現了很多很多的神將網絡,但是神經網絡再多,不變的還是全連接層 全連接層成爲了一種通用的數學模型用於迴歸和分類任務,它本質上就是擬合曲線(決策邊界曲線或迴歸曲線),其擬合曲線的方式是基於連續的定義的,就跟微積分一樣,任