原创 linux 多線程信號量(盤子水果問題)

桌上有一空盤,允許存放一隻水果。爸爸可向盤中放蘋果,也可向盤中放桔子,兒子專等吃盤中的桔子,女兒專等吃盤中的蘋果。規定當盤空時一次只能放一隻水果供吃者取用,請用P、V原語實現爸爸、兒子、女兒三個併發進程的同步。 #includ

原创 linux 線程私有數據

類似於errno,不是全局變量,因爲多個線程同時訪問的話可能出現資源同步問題,私有數據是一鍵對多值,每個線程可以根據同一個key,設置自己的數據,也可以通過key對數據進行獲取 #include <stdio.h> #incl

原创 linux 網絡編程(select)

#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys

原创 linux C插入排序

插入排序: 1.首元素爲有序,其它元素爲無序,拿無序第一個元素分別和有序元素進行比較,所以分組從i=1開始,循環n-1次; 2.內部循環從j=i開始,需要比較i-1次; 3.插入排序是穩定排序,因爲相同元素的先後順序不會被改變;

原创 linux c mkdir遇到的坑

mkdir創建目錄時,有時會報權限問題錯誤,創建目錄失敗,有時可以正常創建目錄,但mkdir設置目錄權限爲S_IRWXU | S_IRWXG | S_IRWXO時,權限一直不正確,可能是這個問題導致的創建目錄失敗; 1.mkdir

原创 linux C冒泡排序

1.冒泡排序就行水中的氣泡一樣,氣泡最大的在最上面, 對整型數組中,相鄰兩個元素進行比較,大的放在右邊; 2.外循環是需要有多少組:i=len-1,因爲最後一組時,只有自己一個元素,不需要和其它元素進行比較; 3.內循環是每組內部

原创 mysql 存儲過程批量更新

若表數據比較大,直接update會時間很慢,造成鎖表,內存不夠等問題,可以使用存儲過程分批次進行更新提交,where條件最好加上索引,當然也可以批次刪除; drop procedure if exists upt_tbl_nm;

原创 python socket多線程服務

#!/usr/bin/python3 # -*- coding:utf-8 -*- import socket import configparser import _thread import sys def get_server

原创 shell make

符號: 1.-:-rm *.o $(BIN):執行報錯,也繼續執行下面命令 2.@: 不回顯命令的執行規則,@echo $(CPPFLAGS) $(CFLAGS) $(CC) 3.$^: 目標所依賴的全部文件(條件) 4.&lt;:

原创 python turtle( 海龜畫奧運五環)

import turtle turtle.showturtle() turtle.speed(5) turtle.width(5) turtle.color("blue") turtle.circle(50) turtle.penup

原创 python 集合

#集合 集合是一個無序的不重複的序列,可以使用大括號{}或set()創建集合,若創建一個空的集合 則使用set()進行創建,因爲{}是用來創建字典的 #兩個集合之間進行運算 #字符中元素是字符,所以集合中元素是字符 set1=se

原创 python 簡易學生管理系統(使用函數、字典)

import os # -*- coding:utf-8 -*- menus=""" 1.添加學生信息 2.修改學生信息 3.刪除學生信息 4.查詢學生信息 5.遍歷所有學生信息 6.退出學生管理系統 0.清除屏幕信息 """ p

原创 python 函數

#函數 def fun_nm(): 函數體 #函數調用 fun_nm() 使用關鍵字def 來告訴Python你要定義一個函數。這是函數定義,向Python指出了函數名 #函數傳入單個參數 def fun_nm(user):

原创 python 字典

#字典 在Python中, 字典用放在花括號{} 中的一系列鍵—值對錶,鍵值對直接使用逗號分隔 ,值可以是數字、字符串、列表、字典等任何python對象; name={‘nm’:‘zy’, ‘sex’:0, ‘age’:10} #

原创 python 列表

#列表 列表類似數組,由一系列按順序的元素組成; name=[‘zs’,‘ls’] #索引 索引由0開始,最後一個元素索引爲-1,倒數第二個爲-2,依次類推; #操作列表 修改列表:根據索引直接進行重新賦值 name[0]=‘ww