⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 semaphor.tex

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 TEX
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Name:        semaphore.tex%% Purpose:     wxSemaphore documentation%% Author:      Vadim Zeitlin%% Modified by:%% Created:     02.04.02%% RCS-ID:      $Id: semaphor.tex,v 1.8 2005/11/19 01:07:36 MR Exp $%% Copyright:   (c) 2002 Vadim Zeitlin%% License:     wxWindows license%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\section{\class{wxSemaphore}}\label{wxsemaphore}wxSemaphore is a counter limiting the number of threads concurrently accessinga shared resource. This counter is always between $0$ and the maximum valuespecified during the semaphore creation. When the counter is strictly greaterthan $0$, a call to \helpref{Wait}{wxsemaphorewait} returns immediately anddecrements the counter. As soon as it reaches $0$, any subsequent calls to\helpref{Wait}{wxsemaphorewait} block and only return when the semaphorecounter becomes strictly positive again as the result of calling \helpref{Post}{wxsemaphorepost} which increments the counter.In general, semaphores are useful to restrict access to a shared resourcewhich can only be accessed by some fixed number of clients at the same time. Forexample, when modeling a hotel reservation system a semaphore with the counterequal to the total number of available rooms could be created. Each time a roomis reserved, the semaphore should be acquired by calling \helpref{Wait}{wxsemaphorewait} and each time a room is freed it should bereleased by calling \helpref{Post}{wxsemaphorepost}.\wxheading{Derived from}No base class\wxheading{Include files}<wx/thread.h>\latexignore{\rtfignore{\wxheading{Members}}}\membersection{wxSemaphore::wxSemaphore}\label{wxsemaphorewxsemaphore}\func{}{wxSemaphore}{\param{int }{initialcount = 0}, \param{int }{maxcount = 0}}Specifying a {\it maxcount} of $0$ actually makes wxSemaphore behave as ifthere is no upper limit. If maxcount is $1$, the semaphore behaves exactly as amutex.{\it initialcount} is the initial value of the semaphore which must be between$0$ and {\it maxcount} (if it is not set to $0$).\membersection{wxSemaphore::\destruct{wxSemaphore}}\label{wxsemaphoredtor}\func{}{\destruct{wxSemaphore}}{\void}Destructor is not virtual, don't use this class polymorphically.\membersection{wxSemaphore::Post}\label{wxsemaphorepost}\func{wxSemaError }{Post}{\void}Increments the semaphore count and signals one of the waitingthreads in an atomic way. Returns wxSEMA\_OVERFLOW if the countwould increase the counter past the maximum.\wxheading{Return value}One of:\twocolwidtha{7cm}\begin{twocollist}\itemsep=0pt\twocolitem{{\bf wxSEMA\_NO\_ERROR}}{There was no error.}\twocolitem{{\bf wxSEMA\_INVALID}}{Semaphore hasn't been initialized successfully.}\twocolitem{{\bf wxSEMA\_OVERFLOW}}{Post() would increase counter past the max.}\twocolitem{{\bf wxSEMA\_MISC\_ERROR}}{Miscellaneous error.}\end{twocollist}\membersection{wxSemaphore::TryWait}\label{wxsemaphoretrywait}\func{wxSemaError }{TryWait}{\void}Same as \helpref{Wait()}{wxsemaphorewait}, but returns immediately.\wxheading{Return value}One of:\twocolwidtha{7cm}\begin{twocollist}\itemsep=0pt\twocolitem{{\bf wxSEMA\_NO\_ERROR}}{There was no error.}\twocolitem{{\bf wxSEMA\_INVALID}}{Semaphore hasn't been initialized successfully.}\twocolitem{{\bf wxSEMA\_BUSY}}{Returned by TryWait() if Wait() would block, i.e. the count is zero.}\twocolitem{{\bf wxSEMA\_MISC\_ERROR}}{Miscellaneous error.}\end{twocollist}\membersection{wxSemaphore::Wait}\label{wxsemaphorewait}\func{wxSemaError }{Wait}{\void}Wait indefinitely until the semaphore count becomes strictly positiveand then decrement it and return.\wxheading{Return value}One of:\twocolwidtha{7cm}\begin{twocollist}\itemsep=0pt\twocolitem{{\bf wxSEMA\_NO\_ERROR}}{There was no error.}\twocolitem{{\bf wxSEMA\_INVALID}}{Semaphore hasn't been initialized successfully.}\twocolitem{{\bf wxSEMA\_MISC\_ERROR}}{Miscellaneous error.}\end{twocollist}\membersection{wxSemaphore::WaitTimeout}\label{wxsemaphorewaittimeout}\func{wxSemaError }{WaitTimeout}{\param{unsignedlong}{timeout\_millis}}Same as \helpref{Wait()}{wxsemaphorewait}, but with a timeoutlimit.\wxheading{Return value}One of:\twocolwidtha{7cm}\begin{twocollist}\itemsep=0pt\twocolitem{{\bf wxSEMA\_NO\_ERROR}}{There was no error.}\twocolitem{{\bf wxSEMA\_INVALID}}{Semaphore hasn't been initialized successfully.}\twocolitem{{\bf wxSEMA\_TIMEOUT}}{Timeout occurred without receiving semaphore.}\twocolitem{{\bf wxSEMA\_MISC\_ERROR}}{Miscellaneous error.}\end{twocollist}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -