先說說線程在多線程中,為了保證共享資源的正確性,我們常常會用到線程同步技術.將一些敏感操作變成原子操作,保證同一時刻多個線程中只有一個線程在執行這個原子操作。我最常用的是互斥鎖,也稱獨占鎖。其次還有讀寫鎖,信號量,條件變量等。除此之外,我們在進程間通信時會用到信號,向某一個進程發送信號,該進程中設置信號處理函數,然后當該進程收到信號時,執行某些操作。其實在線程中,也可以接受信號,利用這種機制,我們也可以用來實現線程同步。更多信息見//www.jb51.ne
系統 2019-09-27 17:48:40 1963
因為GAE在國內訪問不便,所以平時有一些小應用,我都會放在SAE上面,雖然SAE還有很多缺陷,但算是上手比較容易的一個了,最起碼文檔寫的不錯。開發SAE上的應用,我一般都用Flask,SAE預裝了Flask,所以你可以直接用,但我們難免會用一些沒有預裝的庫。如果是在以前,可能需要自己將package挨個copy到應用目錄中,然后手動加載,現在嘛,不需要那么麻煩了,SAE有個非常不錯的解決方案,見《安裝依賴的第三方包》你可以使用saecloud來代替pip安
系統 2019-09-27 17:48:13 1963
最近敲代碼的時候主要遇到兩大問題,第一個是構造自己包的時候找不到package。構造自己package談兩條經驗,有助于解決這個問題。1自己構造包的名稱盡量不要和Python自帶的包重名,起的名字個性化一點。要不然出的bug都不知道錯在哪2只要打算把這個文件夾當成一個包,就一定要在這個文件夾同一目錄下新建一個__init__.py文件(內容可以為空)一般來說注意這兩點,構建包就不成問題。在包的文件夾里面的.py文件稱之為模塊(文件名就是模塊名),當然包里也
系統 2019-09-27 17:48:06 1963
我們在寫代碼的過程中,會經常使用到for循環,去循環列表,那么如果我們拿到一個類型為str的列表,對它進行for循環,結果看下面的代碼和圖:str_list=str(['a','b','c'])forrowinstr_list:print(row)結果:Python字符串類型列表轉換成真正列表類型那么for循環就把str類型的列表的每一個字符都一個一個的循環的打印出來,而這個結果并不是我們想要的,那么如何解決這個問題?,使用到第三方模塊,看下面的代碼fro
系統 2019-09-27 17:47:49 1963
閱讀目錄tcp協議:流式協議(以數據流的形式通信傳輸)、安全協議(收發信息都需收到確認信息才能完成收發,是一種雙向通道的通信)tcp協議在OSI七層協議中屬于傳輸層,它上承用戶層的數據收發,下啟網絡層、數據鏈路層、物理層。可以說很多安全數據的傳輸通信都是基于tcp協議進行的。為了讓tcp通信更加方便需要引入一個socket模塊(將網絡層、數據鏈路層、物理層封裝的模塊),我們只要調用模塊中的相關接口就能實現傳輸層下面的繁瑣操作。簡單的tcp協議通信模板:(需
系統 2019-09-27 17:47:19 1963
你學習到今日,會發現python你基本都掌握了。可以完成基本的東西。。。。。突然有個問題,是為什么我還不能搞程序,完整實現一點東西(貴在堅持,入門就想吃大胖子,想太多了)另外一個問題,我們寫出來簡單的代碼,本來一個很簡單的內容,但是真正能用缺要debug很久。。。。(排查)bug###是昆蟲,臭蟲的意思,在計算機發展過程中,有一個故事,就是昆蟲依附在電路板某個地方,導致無法開機。。。debug###就是驅蟲,除蟲的意思。(會網絡的朋友,經常無奈的時候會de
系統 2019-09-27 17:47:06 1963
前一章介紹了python中的集中基本數據類型,本章著重記錄python中str字符串類型數據的應用。str字符串主要由兩種方法,一種是方法,一種是魔術方法。由于內容實在過于多,本章只介紹其中的方法。我會按照pycharm給的內置方法順序(即字母排列順序)全部依次介紹各種方法的使用。print(dir(str))"""'__add__','__class__','__contains__','__delattr__','__dir__','__doc__',
系統 2019-09-27 17:46:53 1963
通俗的來說,Python中所謂的命名空間可以理解為一個容器。在這個容器中可以裝許多標識符。不同容器中的同名的標識符是不會相互沖突的。理解python的命名空間需要掌握三條規則:第一,賦值(包括顯式賦值和隱式賦值)產生標識符,賦值的地點決定標識符所處的命名空間。第二,函數定義(包括def和lambda)產生新的命名空間。第三,python搜索一個標識符的順序是"LEGB"。所謂的"LEGB"是python中四層命名空間的英文名字首字母的縮寫。最里面的一層是L
系統 2019-09-27 17:46:43 1963
write()方法把字符串str寫入文件。沒有返回值。由于緩沖,字符串可能不實際顯示文件,直到flush()或close()方法被調用。語法以下是write()方法的語法:fileObject.write(str)參數str--這是要被寫入的文件中的字符串。返回值此方法不返回任何值。例子下面的例子顯示write()方法的使用。#!/usr/bin/python#Openafileinwritemodefo=open("foo.txt","rw+")prin
系統 2019-09-27 17:46:23 1963
先來介紹一些pythonweb編程基礎知識1.GET與POST區別1)POST是被設計用來向web服務器上放東西的,而GET是被設計用來從服務器取東西的,GET也能夠向服務器傳送較少的數據,而Get之所以也能傳送數據,只是用來設計告訴服務器,你到底需要什么樣的數據.POST的信息作為HTTP請求的內容,而GET是在HTTP頭部傳輸的;2)POST與GET在HTTP中傳送的方式不同,GET的參數是在HTTP的頭部傳送的,而Post的數據則是在HTTP請求的內
系統 2019-09-27 17:38:29 1963