[英]Multiple Instantiation of Programs interacting with one another (Python2.7 & Tkinter)
我目前有一個餐廳模擬程序,Tkinter的GUI,我正在尋找一種方法,可以在更新其關鍵變量的意義上使程序的多個實例相互交互。 (對不起,我英語不好)
比方說:
Order
, See Inventory
和See Sales
現在,餐廳必須跟蹤所下的訂單以及烹飪食物的庫存。
我嘗試通過使用txt
文件導入和導出來跟蹤程序來對程序進行編碼,以跟蹤數據,但是直到現在,我才意識到txt
文件可以一次由程序進行編輯。 (無法一次編輯單個txt
文件)
問:保存程序中使用的變量的值,以便多個用戶可以實時使用變量的更新值使用該程序,哪種方法更好?
Global
變量。 但是我怎么可能給它們賦值並保持更新呢? (每次運行程序時都會初始化局部變量) 感謝您閱讀我的問題!
您可以使用sqlite3
模塊創建輕量級數據庫。 這不需要服務器程序。 數據庫管理器位於Python標准庫中。 多個實例將讀取/寫入同一文件數據庫,而sqlite將確保一致性。
但是,請注意, 大多數sqlite實現都具有5秒的全局鎖定 ,因此您的多個實例中的任何一個實例都必須在少於該時間的時間內完成其讀/寫操作,否則在其他實例中將導致“數據庫鎖定”異常。
這里有一個例子:
import sqlite3 as lite
import time
con = lite.connect('common.db')
cur = con.cursor()
cur.execute(
"CREATE TABLE IF NOT EXISTS restaurant (orderId INT primary key, inventory TEXT, sales INT);")
for i in range(5):
print "About to insert on ID: %s" % i
cur.execute("INSERT INTO restaurant VALUES(%d, 'burger', 1)" % i)
time.sleep(1)
con.close()
如果您同時在兩個終端上執行此代碼,則會注意到:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.