MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap
Revision 13 as of 2023-06-02 16:41:04
  • Java
  • jython

jython

Python for the Java platform (2.7)

  • http://www.jython.org/index.html

  • wget https://repo1.maven.org/maven2/org/python/jython-standalone/2.7.1/jython-standalone-2.7.1.jar

  • https://wiki.python.org/jython/UserGuide

GUI app

  • https://jython.readthedocs.io/en/latest/GUIApplications/

app.py

   1 from javax.swing import JButton, JFrame
   2 
   3 frame = JFrame('Hello, Jython!',
   4             defaultCloseOperation = JFrame.EXIT_ON_CLOSE,
   5             size = (300, 300)
   6         )
   7 
   8 def change_text(event):
   9     print 'Clicked!'
  10 
  11 button = JButton('Click Me!', actionPerformed=change_text)
  12 frame.add(button)
  13 frame.visible = True

   1 java -jar jython-standalone-2.7.1.jar app.py 

GIL (Global Interpreter Lock)

https://jython.readthedocs.io/en/latest/chapter19/#no-global-interpreter-lock

No Global Interpreter Lock

Jython lacks the global interpreter lock (GIL), which is an implementation detail of CPython. For CPython, the GIL means that only one thread at a time can run Python code.

Again, Jython does not have the straightjacket of the GIL. This is because all Python threads are mapped to Java threads and use standard Java garbage collection support (the main reason for the GIL in CPython is because of the reference counting GC system). The important ramification here is that you can use threads for compute-intensive tasks that are written in Python.

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01