title: Access to Tkinter's Text widget by background thread cause crashes
body: <p>I created a simple tkinter app, where have used two threads. Their task is to write numbers to widgets such as label and text. One thread is triggered by button (click event) and second is executed as a background thread.</p>
  
  <pre><code>import Tkinter as tk
  from ttk import *
  from Tkconstants import *
  import threading, thread, time
  
  def tl1(text,counter):
      while True:
          text.insert(END,counter)
          counter += 1
          time.sleep(2)
  
  def tl2(label,counter):
      while True:
          label['text'] = counter
          counter += 1
          time.sleep(1)
  
  class mainWindow():
      def __init__(self, master):
          self.master = master
          self._initLayout()
  
      def _initLayout(self):
  
          #button
          self.button = tk.Button(self.master, text="thread1_start", command = self._task1)
          self.button.pack()
  
          #label
          self.label = tk.Label(self.master)
          self.label.pack()
  
          #text
          self.text = tk.Text(self.master, width=30)
          self.text.pack()
  
      def _task1(self):
          t1 = thread.start_new_thread(tl1,(self.text,1))
  
      def _task2(self):
          t2 = thread.start_new_thread(tl2,(self.label,1000))
  
  class App(tk.Tk):
      def __init__(self):
          tk.Tk.__init__(self)
          self.mainWindow = mainWindow(self)
  
          self.mainWindow._task2() #background_thread
  
  app = App()
  app.mainloop()
  </code></pre>
  
  <p>In this manner everything works fine, but if we change the background thread to display results on <strong>text widget</strong>, the whole app freezes.
  <br />Why background thread works fine communicating with label but causes problems with text widget? Is there any way to run it properly? </p>