原创 樂觀鎖與悲觀鎖

樂觀鎖: 總是認爲在讀取的時候認爲沒有其他線程在修改 因此不加鎖 但是在修改的時候必須獲取鎖 也就是多個線程同時修改時,存在鎖競爭 鎖的實現方式也是自旋鎖(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中引用沒有固定類型的,引用是可變的,所以對於任何一個對象只有一種形態就是它本身,不會有第二種形態,所以

原创 超簡單理解卷積神將網絡

人工智能發展到現在,出現了很多很多的神將網絡,但是神經網絡再多,不變的還是全連接層 全連接層成爲了一種通用的數學模型用於迴歸和分類任務,它本質上就是擬合曲線(決策邊界曲線或迴歸曲線),其擬合曲線的方式是基於連續的定義的,就跟微積分一樣,任