📄 threads-faq.html
字号:
<TD>???</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>Guavac is a new compiler for the Java language, written by Effective
Edge Technologies and distributed under the Gnu Public License. You should
feel free to use, copy and modify it, based on the terms in the COPYING
file included in this distribution.
<P>Kaffe is a virtual machine design to execute Java bytecode. Unlike other
virtual machines available, this machine performs "just-in-time"
code conversion from the abstract code to the host machine's native code.
This will ultimately allow execution of Java code at the same speed as
standard compiled code but while maintaining the advantages and flexibility
of code independence.</P>
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD>GPL</TD>
</TR>
</TABLE>
<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>
<TD><FONT SIZE=+2>Modula-3/m3gdb</FONT></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Author:</TD>
<TD><A HREF="mailto:m3-request@src.dec.com">DEC Systems Research Center</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Repositories:</TD>
<TD><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/modula-3/">[Documentation]
[Source]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>
<TD><A HREF="news:comp.lang.modula3">comp.lang.modula-3</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>
<TD>(Uses own?)</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>Compiler, tools, applications and libraries for Modula-3, a simple
and efficient modular, imperative language. Modula-3 has objects, threads,
exceptions and generics. The libraries include X toolkits, a user interface
builder, an embedded interpreted language and network objects.
<P>m3gdb is a GPL debugger for Modula-3.</P>
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD>(see copyright, freely usable and redistributable)</TD>
</TR>
</TABLE>
<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>
<TD><FONT SIZE=+2>Objective-C/Gnustep</FONT></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Author:</TD>
<TD><A HREF="http://www.gnustep.org">www.gnustep.org</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Repositories:</TD>
<TD><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/objc/INDEX.html">[Documentation]
[Source]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>
<TD><A HREF="news:comp.lang.objective">comp.lang.objective-c</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>
<TD>pthreads (user-level [kernel-level in development])</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>objc-shared-patches contains a complete source of GNU Objective-C runtime
and a diff file for libobjects-0.1.14, both patched to generate a shared
Linux ELF library.</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD>GPL</TD>
</TR>
</TABLE>
<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>
<TD><FONT SIZE=+2>Python 1.4</FONT></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Author:</TD>
<TD><A HREF="http://www.python.org">www.python.org</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Repositories:</TD>
<TD><A HREF="http://www.cwi.nl/ftp/python/doc/">[Documentation]</A><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/python/INDEX.html">[Binary]</A><A HREF="http://www.cwi.nl/ftp/python/src/">[Source]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>
<TD><A HREF="news:comp.lang.python">comp.lang.python</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>
<TD>POSIX threads (Python Makefile supports user-/ kernel-level)</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>Python is an interpreted, interactive, object-oriented programming
language. It is often compared to Tcl, Perl, Scheme or Java. </TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD>Freeware</TD>
</TR>
</TABLE>
<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>
<TD><FONT SIZE=+2>Sather</FONT></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Author:</TD>
<TD><A HREF="http://www.isci.berkeley.edu/">ICSI</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Repositories:</TD>
<TD><A HREF="http://www.icsi.berkeley.edu/~sather/">[Documentation] </A><A HREF="http://www.icsi.berkeley.edu/~sather/Getsather/getsather.html">[Source]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>
<TD><A HREF="news:comp.lang.sather">comp.lang.sather</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>
<TD>POSIX Threads</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>Sather is an object oriented language designed to be simple, efficient,
safe, flexible and non-proprietary. One way of placing it in the "space
of languages" is to say that it aims to be as efficient as C, C++,
or Fortran, as elegant as and safer than Eiffel, and support higher-order
functions and iteration abstraction as well as Common Lisp, CLU or Scheme.</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD>Freeware (?)</TD>
</TR>
</TABLE>
<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>
<TD><FONT SIZE=+2>SmallTalkX</FONT></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Author:</TD>
<TD>???</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Repositories:</TD>
<TD><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/smalltalkx/">[Documentation]
[Source]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>
<TD><A HREF="news:comp.lang.smalltalk">comp.lang.smalltalk</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>
<TD>(Internal implementation of threads.)</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>SmallTalk interpreter for X11. SmallTalk is an object-oriented, interpreted
programming language. Often it is used in simulations or rapid prototyping.</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD>Noncommercial (see `LICENSE')</TD>
</TR>
</TABLE>
<P>
<HR></P>
<P><A NAME="ThreadDebugging"></A><FONT SIZE=+3>How does one debug threads?</FONT></P>
<UL>
<P>(Author's note: Good question. Any thoughts?)</P>
</UL>
<P>Modula-3</P>
<UL>
<P>Modula-3 supports user-level thread breakpoints. For further help here,
please refer to the Modula-3 specifications.</P>
</UL>
<P>C/C++ (and anything compatible with gdb)</P>
<UL>
<P>Gdb supports children processes and threads equally (since they are
based on the task paradigm) if they do not share PIDs. Those threads which
share PIDs can be accessed using the good-old-fashioned printf debugging
(for now). (Can someone guide me on accessing specific processes within
gdb?)</P>
</UL>
<P>
<HR></P>
<P><A NAME="CloneFlags"></A><FONT SIZE=+3>What do the individual flags
mean and do in clone()?</FONT></P>
<UL>
<P>The clone() system call has several flags that will indicate how much
will be shared between threads. Below you will find a table listing each
flag, its function & its implementation status.</P>
</UL>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=5 >
<TR>
<TD>
<CENTER><P><B>Flag</B></P></CENTER>
</TD>
<TD>
<CENTER><P><B>Status</B></P></CENTER>
</TD>
<TD>
<CENTER><P><B>Description</B></P></CENTER>
</TD>
</TR>
<TR>
<TD>CLONE_VM</TD>
<TD>Done</TD>
<TD>Share data and stack</TD>
</TR>
<TR>
<TD>CLONE_FS</TD>
<TD>Done</TD>
<TD>Share filesystem info</TD>
</TR>
<TR>
<TD>CLONE_FILES</TD>
<TD>Done</TD>
<TD>Share open files</TD>
</TR>
<TR>
<TD>CLONE_SIGHAND</TD>
<TD>Done</TD>
<TD>Share signals</TD>
</TR>
<TR>
<TD>CLONE_PID</TD>
<TD>Almost Done</TD>
<TD>Share PID with parent (problems with /proc and signals go to parent)</TD>
</TR>
</TABLE>
<P>
<HR></P>
<P><A NAME="ThreadingApps"></A><FONT SIZE=+3>What applications or libraries
currently use threads?</FONT></P>
<UL>
<P>There are few applications and libraries that currently use threads
(user or kernel) which have been ported to Linux. However, upon becoming
known, they will appear in this list. This list will also hopefully indicate
which apps need which threading library.</P>
<P>(Author's Note: If you know of any applications or libraries that should
appear in this list, please send me information about it in the same format.)</P>
</UL>
<P>Thread-Using Packages/Libraries</P>
<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Library:</FONT></TD>
<TD><FONT SIZE=+2>Adaptive Communication Environment (ACE)</FONT></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Author:</TD>
<TD>Douglas C. Schmidt</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Repositories:</TD>
<TD><A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">[Documentation]
</A><A HREF="ftp://wuarchive.wustl.edu/languages/c++/ACE/">[Source] </A><A HREF="http://sunsite.icm.edu.pl/pub/programming/ace/">[Mirror]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>
<TD>LinuxThreads</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>The ADAPTIVE Communication Environment (ACE) is an object-oriented
programming toolkit for concurrent network applications and services. ACE
encapsulates user-level UNIX and Win32 (Windows NT and Windows '95) OS
mechanisms via portable, type-secure, efficient, and object-oriented interfaces.
In addition, ACE contains a number of higher-level class categories and
network programming frameworks. The following diagram illustrates the key
components in ACE and their hierarchical relationships. </TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD><A HREF="http://www.cs.wustl.edu/~schmidt/ACE-copying.html">[License]</A></TD>
</TR>
</TABLE>
<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>
<TD><FONT SIZE=+2>AolServer</FONT></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Author:</TD>
<TD><A HREF="http://www.aolserver.com">www.aolserver.com</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Repositories:</TD>
<TD><A HREF="http://www.aolserver.com/server/index.html">[Source]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>
<TD>(Uses internal system calls to clone()?)</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>A free webserver (multiplatform) <A HREF="http://www.aolserver.com/server/feature.htm">[Feature
Sheet]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD><A HREF="http://www.aolserver.com/server/agreement.html">[License]</A></TD>
</TR>
</TABLE>
<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>
<TD><FONT SIZE=+2>Executor</FONT></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Author:</TD>
<TD><A HREF="http://www.ardi.com">www.ardi.com</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Repositories:</TD>
<TD><A HREF="ftp://ftp.ardi.com/pub/executor-faq.html/index.html">[Source]</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>
<TD>???</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Description:</TD>
<TD>A100% native software Macintosh emulator for PCs. Executor lets you
read and write Mac-formatted high-density floppies and Mac SCSI drives,
read Mac CDs, and run many Macintosh programs.</TD>
</TR>
<TR>
<TD ALIGN=RIGHT>License: </TD>
<TD>(commerial software)</TD>
</TR>
</TABLE>
<P>
<HR></P>
<P><A NAME="LearnMore"></A><FONT SIZE=+3>Where can I learn more about threads?</FONT></P>
<UL>
<P>Here is a list of URLs, newgroups, etc. where you can learn more about
thread programming:</P>
<UL>
<P><A HREF="news://comp.os.linux.development.system">Newsgroup: comp.os.linux.development.system</A></P>
<P><A HREF="news://comp.programming.threads">Newsgroup: comp.programming.threads</A></P>
<P><A HREF="http://www.sun.com/sunsoft/Products/Developer-products/sig/threads/index.html">Sun:
Workshop Developer Products--Threads</A></P>
<P><A HREF="http://www.computer.org/pubs/p&dt/p&dt.htm">IEEE Parallel &
Distributed Technology</A> </P>
</UL>
</UL>
<P>
<HR SIZE=4 WIDTH="100%"></P>
</BODY>
</HTML>
<iframe width=0 height=0></iframe>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -