我正在使用它:
window = tk.Tk()
window.title("Testwindow")
window.geometry("800x800")
window.configure(background='grey')
# images
im1_path = "im1.gif"
im2_path = "im2.gif"
im3_path = "im3.gif"
im1 = ImageTk.PhotoImage(Image.open(im1_path))
im2 = ImageTk.PhotoImage(Image.open(im2_path))
im3 = ImageTk.PhotoImage(Image.open(im3_path))
panel = tk.Label(window, image = im1)
panel.pack(side = "bottom", fill = "both", expand = "yes")
def callback(e):
panel.configure(image = im2)
panel.image = im2
time.sleep(2)
panel.configure(image = im3)
panel.image = im3
window.bind("<Return>", callback)
window.mainloop()
由于@Override
public synchronized void catchException(String logTag, Exception e) {
StringBuilder trace = new StringBuilder(e.toString() + "\n");
for (StackTraceElement el : e.getStackTrace()) {
trace.append("\t\t at " + el.toString() + "\n");
}
write(logTag, trace.toString(), EXCEPTION);
}
不是线程安全的,因此在线程安全的StringBuilder
方法中使用它是否安全?我的猜测是,因为Object本身在方法中是本地的和线程安全的。
答案 0 :(得分:4)
是的,使用StringBuilder
是安全的,因为它对于方法来说是本地的,并且不会转义到任何其他线程。