原创 MAC Reason: image not found

   在mac 上python3 連接mqsql 數據庫時候,安裝mysqlclient  導包 MySQLdb 運行則會報錯: return _bootstrap._gcd_import(name[level:], package, l

原创 NoneType object has no attribute encoding

採用scrapy 爬取數據,採用異步方式保存數據到數據庫時候,運行 報錯如下: 2020-06-03 17:28:37 [scrapy.core.engine] INFO: Spider closed (finished)[Failure

原创 使用 Image 截取指定區域的圖片截取不到位

想使用爬蟲模擬登陸12306 ,但是有驗證碼,需要識別驗證碼。 實現步驟 1.把 登陸整個界面 截圖。 2.找到 驗證碼圖片區域在整個截圖的在區域,截取驗證碼圖片 3.對驗證碼圖片進行識別 在第2步驟總是截取不到對應的區域,座標也是正確的

原创 python爬取酷狗音樂兩種方法

    第一種 打開酷狗音樂 選擇一首歌,如下圖, 點擊該歌曲,會進入新的界面,鼠標右鍵 選擇查看,會看到下面界面,而且在下面的Elements 裏面會看到有一個mp3的文件路徑 把這個文件路徑複製下,直接在瀏覽器中打開,就會看到下圖

原创 線程通信

線程通信的目標是使線程間能夠互相發送信號。另一方面,線程通信使線程能夠等待其他線程的信號。 例如,線程B可以等待線程A的一個信號,這個信號會通知線程B數據已經準備好了。本文將講解以下幾個JAVA線程間通信的主題: 1、通過共享

原创 Java併發性和多線程介紹目錄

 java併發性和多線程介紹多線程的優點多線程的代價 併發編程模型 如何創建並運行java線程競態條件與臨界區 線程安全與共享資源 線程安全及不可變性Java內存模型JAVA同步塊線程通信Java ThreadLocalThread Si

原创 避免死鎖

原文鏈接        作者:Jakob Jenkov 譯者:申章   校對:丁一 在有些情況下死鎖是可以避免的。本文將展示三種用於避免死鎖的技術: 1.加鎖順序 2.加鎖時限 3.死鎖檢測 加鎖順序 當多個線程需要相同

原创 如何創建並運行java線程

Java線程類也是一個object類,它的實例都繼承自java.lang.Thread或其子類。 可以用如下方式用java中創建一個線程: Tread thread = new Thread(); 執行該線程可以調用該線程的star

原创 多線程的優點

儘管面臨很多挑戰,多線程有一些優點使得它一直被使用。這些優點是: 資源利用率更好程序設計在某些情況下更簡單程序響應更快 資源利用率更好 想象一下,一個應用程序需要從本地文件系統中讀取和處理文件的情景。比方說,從磁盤讀取一個文

原创 Java併發性和多線程介紹

在過去單CPU時代,單任務在一個時間點只能執行單一程序。之後發展到多任務階段,計算機能在同一時間點並行執行多任務或多進程。雖然並不是真正意義上的“同

原创 多線程的代價

從一個單線程的應用到一個多線程的應用並不僅僅帶來好處,它也會有一些代價。不要僅僅爲了使用多線程而使用多線程。而應該明確在使用多線程時能多來的好處比所付出的代價大的時候,才使用多線程。如果存在疑問,應該嘗試測量一下應用程序的性能和響應能力

原创 《Java併發性和多線程介紹》-Java TheadLocal

Java中的ThreadLocal類可以讓你創建的變量只被同一個線程進行讀和寫操作。因此,儘管有兩個線程同時執行一段相同的代碼,而且這段代碼又有一個指向同一個ThreadLocal變量的引用,但是這兩個線程依然不能看到彼此的Threa

原创 競態條件與臨界區

在同一程序中運行多個線程本身不會導致問題,問題在於多個線程訪問了相同的資源。如,同一內存區(變量,數組,或對象)、系統(數據庫,web services等)或文件。實際上,這些問題只有在一或多個線程向這些資源做了寫操作時纔有可能發生,只

原创 線程安全與共享資源

允許被多個線程同時執行的代碼稱作線程安全的代碼。線程安全的代碼不包含競態條件。當多個線程同時更新共享資源時會引發競態條件。因此,瞭解Java線程執行時共享了什麼資源很重要。 局部變量 局部變量存儲在線程自己的棧中。也就是說,局部

原创 java內存模型

Java內存模型規範了Java虛擬機與計算機內存是如何協同工作的。Java虛擬機是一個完整的計算機的一個模型,因此這個模型自然也包含一個內存模型——又稱爲Java內存模型。 如果你想設計表現良好的併發程序,理解Java內存模型是非常重