Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings. The embodiments and features of the embodiments in the present disclosure may be combined with each other without conflict.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing different devices, modules or units, and are not used for limiting the order or interdependence relationship of the functions performed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
The present disclosure will be described in detail below with reference to the accompanying drawings in conjunction with embodiments.
Fig. 1 is a schematic diagram of an application scenario of a message scheduling method according to some embodiments of the present disclosure.
In the application scenario of fig. 1, first, the computing device 101 may obtain, in response to receiving a message reading instruction, a message queue 102 corresponding to the message reading instruction. The message in the message queue 102 includes a message identifier 1021 and a development environment identifier 1022 corresponding to the message identifier 1021. Then, the computing device 101 may select, according to each development environment identifier 1022 included in the message queue 102, a message corresponding to the current development environment from the message queue 102 as a to-be-executed message, so as to obtain the to-be-executed message queue 103. Finally, the computing device 101 may perform message scheduling operations based on the pending message queue 103 described above.
The computing device 101 may be hardware or software. When the computing device is hardware, it may be implemented as a distributed cluster composed of multiple servers or terminal devices, or may be implemented as a single server or a single terminal device. When the computing device is embodied as software, it may be installed in the hardware devices enumerated above. It may be implemented, for example, as multiple software or software modules to provide distributed services, or as a single software or software module. And is not particularly limited herein.
It should be understood that the number of computing devices in FIG. 1 is merely illustrative. There may be any number of computing devices, as implementation needs dictate.
With continued reference to fig. 2, a flow 200 of some embodiments of a message scheduling method according to the present disclosure is shown. The message scheduling method comprises the following steps:
step 201, in response to receiving a message reading instruction, obtaining a message queue corresponding to the message reading instruction.
In some embodiments, in response to receiving the message reading instruction, an execution subject of the message scheduling method (e.g., the computing device 101 shown in fig. 1) may obtain a message queue corresponding to the message reading instruction from the terminal device through a wired connection or a wireless connection. Here, the message reading instruction may be a reading instruction input by a tester. The messages in the message queue comprise message identifications and development environment identifications corresponding to the message identifications. Here, the development environment identification may refer to an identification of a development environment configured for a message in a message queue in advance. For example, the identification of the exact development environment may be R1. Here, the messages in the message queue may further include a commit time.
As an example, the message queue may be: { [ message identification: AAB, development environment identification: r1, commit time: 2021-8-10-12: 00 ]; [ message identification: ABC, development environment identification: r1, commit time: 2021-8-10-12: 01 ]; [ message identification: ABB, development environment identification: r2, commit time: 2021-8-10-12: 05 ]; [ message identification: ADD, development environment identification: r3, commit time: 2021-8-10-12: 04]}.
Step 202, according to each development environment identifier included in the message queue, selecting a message corresponding to the current development environment from the message queue as a message to be executed, and obtaining a message queue to be executed.
In some embodiments, the execution subject may select, from the message queue, a message that includes a development environment identifier that is the same as an identifier of a current development environment, as a message to be executed, resulting in a message queue to be executed. For example, the identification of the current development environment may be "R1". Thus, a message including the same development environment identifier as the identifier "R1" of the current development environment may be selected from the message queue exemplified in step 201 as a to-be-executed message, resulting in a to-be-executed message queue "{ [ message identifier: AAB, development environment identification: r1, commit time: 2021-8-10-12: 00 ]; [ message identification: ABC, development environment identification: r1, commit time: 2021-8-10-12: 01]}".
Step 203, executing message scheduling operation based on the message queue to be executed.
In some embodiments, the execution main body may sequentially schedule the messages to be executed in the message queue to be executed according to a sequence of commit times included in the messages to be executed in the message queue to be executed. Here, the scheduling operation may be to add the to-be-executed message in the to-be-executed message queue to the thread pool to perform scheduling of the message.
The above embodiments of the present disclosure have the following advantages: by the message scheduling method of some embodiments of the present disclosure, the waiting time for message isolation is reduced, and the efficiency of message isolation is improved. In particular, the reason why the latency time leading to message isolation is long is that: a set of gateway system is developed, so that the development cost is high and the development period is long; and deciding on the message to go through the gateway, resulting in a longer latency for message isolation. Based on this, the message scheduling method of some embodiments of the present disclosure first obtains, in response to receiving a message reading instruction, a message queue corresponding to the message reading instruction. The messages in the message queue comprise message identifications and development environment identifications corresponding to the message identifications. Therefore, data support is provided for subsequent message isolation. And then, according to each development environment identifier included in the message queue, selecting a message corresponding to the current environment from the message queue as a message to be executed, and obtaining a message queue to be executed. Therefore, the message corresponding to the current development environment can be selected for scheduling, so that the effect of message isolated consumption is achieved. And finally, executing message scheduling operation based on the message queue to be executed. Thus, the scheduling operation for the message is completed. Therefore, development of a gateway system is avoided, waiting time of message isolation is reduced, and message isolation efficiency is improved.
With further reference to fig. 3, a flow 300 of further embodiments of a message scheduling method according to the present disclosure is shown. The method may be performed by the computing device 101 of fig. 1. The message scheduling method comprises the following steps:
step 301, in response to receiving a message reading instruction, obtaining a message queue corresponding to the message reading instruction.
Step 302, according to each development environment identifier included in the message queue, selecting a message corresponding to the current development environment from the message queue as a message to be executed, and obtaining a message queue to be executed.
In some embodiments, the specific implementation manner and technical effects of the steps 301 and 302 can refer to the steps 201 and 202 in the embodiments corresponding to fig. 2, which are not described herein again.
Step 303, obtaining thread information of each message thread in the message thread pool to obtain a thread information group.
In some embodiments, an executing agent of the message scheduling method (e.g., computing device 101 shown in fig. 1) may obtain thread information for each message thread in a local message thread pool, resulting in a thread information group. The thread information includes thread identification and execution resource information. Here, the message thread pool may refer to a thread pool used by the local server to process a message. Here, the thread identification may represent a message thread in a message thread pool. Here, the execution resource information may characterize a maximum memory occupied by the message executed by the message thread. Here, the thread information may also include a running state. Here, the run state may characterize whether a thread is running.
As an example, the thread information group may be: { [ thread identification: thread A, executing resource information: 1G, operation state: operating state ]; [ thread identification: thread B, executing resource information: 2G, operation state: idle state ]; [ thread identification: thread C, executing resource information: 3G, operation state: idle state ]; [ thread identification: a thread D, executing resource information: 4G, operation state: operating state ]; [ thread identification: e-thread, executing resource information: 5G, operation state: idle state ] }.
And step 304, determining the message thread with the idle running state in the message thread pool as an alternative message thread, and obtaining an alternative message thread group.
In some embodiments, the execution subject may determine a message thread in the message thread pool, the running state of which is an idle state, as an alternative message thread, to obtain an alternative message thread group. In practice, first, the thread information with the idle running state may be selected from the thread information group as the candidate thread information, so as to obtain the candidate thread information group. Then, the execution subject may determine the message thread corresponding to each candidate thread information in the candidate thread information group as a candidate message thread, so as to obtain a candidate message thread group. As an example, according to the above description of the embodiment, an alternative message thread group "{ [ thread identification: thread A ]; [ thread identification: c thread ]; [ thread identification: e thread ] } ".
And 305, sorting the alternative message thread groups in a descending order based on each execution resource information in the thread information group corresponding to the alternative message thread group to obtain an alternative message thread sequence.
In some embodiments, the execution main body may perform descending order sorting on the alternative message thread groups based on each execution resource information in the thread information group corresponding to the alternative message thread group, so as to obtain an alternative message thread sequence. In practice, the execution main body may perform descending order sorting on the alternative message thread groups according to the largest memory represented by each execution resource information corresponding to each alternative message thread in the alternative message thread groups from large to small in numerical value, so as to obtain an alternative message thread sequence.
As an example, according to the description of the embodiment in step 305, an alternative message thread sequence "{ [ thread identification: e thread ]; [ thread identification: c thread ]; [ thread identification: thread a }.
And step 306, executing message scheduling operation on the to-be-executed message queue based on the alternative message thread sequence.
In some embodiments, the to-be-executed messages in the to-be-executed message queue include: message occupancy resource information, commit time, and priority. Here, the message occupation resource information may represent the memory occupied by the thread when running the message. Here, the submission time may be a time when the developer submits the message. Here, the priority may refer to a priority of processing messages divided in advance.
In practice, based on the alternative message thread sequence, the execution main body may perform a message scheduling operation on the to-be-executed message queue through the following steps:
the method comprises the steps of firstly, selecting a message to be executed which comprises message occupied resource information less than or equal to execution resource information of a first alternative message thread in the alternative message thread sequence from the message queue to be executed as a first message to be executed, and obtaining a first message queue to be executed. In practice, the execution main body may select, from the message queue to be executed, a message to be executed of a running memory, which is characterized by the execution resource information of the first candidate message thread in the candidate message thread sequence and whose memory resource occupied by the message is less than or equal to the memory resource information characterized by the execution resource information of the first candidate message thread, as a first message to be executed, so as to obtain a first message queue to be executed.
And secondly, performing descending processing on the first to-be-executed message queue according to the resource information occupied by each message corresponding to the first to-be-executed message queue to obtain a first to-be-executed message sequence. In practice, the execution main body may perform descending processing on the first to-be-executed message queue from large to small according to the numerical value of the resource information occupied by each message corresponding to the first to-be-executed message queue, so as to obtain a first to-be-executed message sequence.
And thirdly, determining an alternative message thread corresponding to each first message to be executed in the first message sequence to be an execution message thread based on the alternative message thread sequence, and obtaining an execution message thread group.
In practice, the above-mentioned third step comprises the following sub-steps:
and a first substep of selecting an alternative message thread, of which the corresponding execution resource information is greater than or equal to the resource information occupied by the message corresponding to the first to-be-executed message, from the alternative message thread sequence as a first alternative message thread to obtain a first alternative message thread group. In practice, the execution main body may select, from the candidate message thread sequence, a candidate message thread whose running memory resource represented by the execution resource information is greater than or equal to a memory resource represented by the message occupation resource information corresponding to the first to-be-executed message as a first candidate message thread, so as to obtain a first candidate message thread group.
And a second substep, determining a difference value between the execution resource information corresponding to each first candidate message thread in the first candidate message thread group and the message occupation resource information corresponding to the first to-be-executed message as a resource difference value, so as to obtain a resource difference value group. In practice, a difference between the operating memory resource represented by the execution resource information corresponding to each first candidate message thread in the first candidate message thread group and the memory resource represented by the message occupied resource information corresponding to the first to-be-executed message may be determined as a resource difference, so as to obtain a resource difference set.
And a third substep of determining the first candidate message thread corresponding to the resource difference value with the smallest value in the resource difference value group as the execution message thread corresponding to the first to-be-executed message.
And fourthly, performing duplicate removal processing on the execution message thread group based on each thread identifier corresponding to the execution message thread group to obtain a duplicate removal execution message thread group. In practice, the execution main body may perform deduplication processing on each execution message thread having the same thread identifier in the execution message thread group, so as to obtain a deduplication execution message thread group.
And fifthly, executing message scheduling operation on the first to-be-executed message sequence based on the de-duplicated execution message thread group.
In practice, for each of the above-mentioned sets of deduplication execution message threads, the following processing steps are performed:
the first substep, determine every first to-be-executed message that the above-mentioned de-duplication execution message thread corresponds to as the target and carry out the message group.
And a second substep of sequencing the target execution message group based on the sequence of the submission times corresponding to the target execution message group to obtain a target execution message sequence. In practice, the execution main body may sort the target execution message groups according to the order of the submission times corresponding to the target execution message groups, so as to obtain a target execution message sequence.
And a third substep of generating a message execution score based on the sequence number corresponding to each target execution message in the target execution message sequence, the message occupied resource information and the priority, and obtaining a message execution score group. In practice, the execution main body may determine, as the message execution score, a sequence number corresponding to each target execution message, and a product value of the memory resource and the priority represented by the message occupied resource information, to obtain the message execution score group.
And a fourth substep of performing packet evaluation based on the message, and sorting the target execution message group to obtain a target execution message queue. In practice, the execution body may sort the target execution message group from large to small according to the value of the message execution score in the message execution score group, so as to obtain the target execution message queue.
And a fifth substep of executing scheduling operations on the target execution messages in the target execution message queue in sequence based on the de-replay execution message thread. In practice, the execution agent may add each target execution message in the target execution message queue to the deduplication execution message thread in turn to execute the target execution message.
Optionally, a to-be-executed message including message occupied resource information larger than execution resource information of a first candidate message thread in the candidate message thread sequence is selected from the to-be-executed message queue as a second to-be-executed message, so as to obtain a second to-be-executed message queue.
In some embodiments, the execution subject may select, from the message queue to be executed, a message to be executed that includes memory resources represented by message occupied resource information and is greater than running memory resources represented by execution resource information of a first candidate message thread in the candidate message thread sequence, as a second message to be executed, so as to obtain a second message queue to be executed.
Optionally, a second to-be-executed message sequence is generated based on the respective submission times and priorities corresponding to the second to-be-executed message queue.
In some embodiments, the to-be-executed messages in the to-be-executed message queue include: commit time and priority. Here, the message occupation resource information may represent the memory occupied by the thread when running the message. Here, the submission time may be a time when the developer submits the message. Here, the priority may refer to a priority in which the message is divided in advance. In practice, based on the respective submission times and priorities corresponding to the second to-be-executed message queue, the execution main body may generate a second to-be-executed message sequence by:
and step one, sequencing the second to-be-executed message queue according to each priority corresponding to the second to-be-executed message queue to obtain a first alternative to-be-executed message sequence. In practice, the execution main body may sequence the second to-be-executed message queue from large to small according to the numerical values of the priorities corresponding to the second to-be-executed message queue, so as to obtain a first candidate to-be-executed message sequence.
And secondly, for each first alternative to-be-executed message with the same priority in the first alternative to-be-executed message sequence, sequencing each first alternative to-be-executed message according to the sequence of the submission time corresponding to each first alternative to-be-executed message, and obtaining a second to-be-executed message sequence. In practice, the execution main body may sequence, for each first alternative to-be-executed message with the same priority in the first alternative to-be-executed message sequence, each first alternative to-be-executed message with the same priority according to the order of submission times corresponding to each first alternative to-be-executed message, so as to obtain a second to-be-executed message sequence.
Optionally, based on the auxiliary message thread in the message thread pool, scheduling operations are sequentially performed on the second to-be-executed message in the second to-be-executed message sequence.
In some embodiments, the execution agent may add each second to-be-executed message in the second to-be-executed message sequence to the assist message thread in sequence to execute the target execution message. Here, the auxiliary message thread may refer to an auxiliary thread in the thread pool.
The related content in step 303 plus 306 is used as an invention point of the present disclosure, and solves the technical problem mentioned in the background art that "the message cannot be run in time after the message with more occupied message resources because the occupied message resources and the submission time are not considered". The factors that cause the messages arranged behind the message occupying more resources to fail to run in time are often as follows: the occupation resource and the submission time of the message are not considered, so that the messages arranged behind the message with more occupation resource cannot be timely operated. If the above factors are solved, the effect of improving the scheduling efficiency of the message can be achieved. To achieve this effect, the present disclosure first obtains thread information of each message thread in the message thread pool, and obtains a thread information group. The thread information includes thread identification and execution resource information. Therefore, the messages of different memory resources can be added to the corresponding message threads conveniently, and the message threads can be fully utilized. And secondly, selecting a message to be executed, which comprises message occupied resource information less than or equal to the execution resource information of the first alternative message thread in the alternative message thread sequence, from the message queue to be executed as a first message to be executed, and obtaining a first message queue to be executed. Therefore, the message meeting the requirement of the message thread on running the memory is selected to run, so that the phenomenon that the message thread runs in a stuck state due to the fact that the memory resource of the message is too large is prevented. And then, generating a message execution score based on the sequence number, the message occupied resource information and the priority corresponding to each target execution message in the target execution message sequence, and obtaining a message execution score group. And performing grouping evaluation based on the messages, and sequencing the target execution message group to obtain a target execution message queue. And executing scheduling operation on the target execution messages in the target execution message queue in sequence based on the de-replay execution message thread. Therefore, messages which are arranged behind messages which occupy more resources are convenient to run in time, and the messages which occupy less resources are arranged behind the messages which occupy more resources. Then, selecting a message to be executed, which comprises message occupied resource information larger than the execution resource information of the first alternative message thread in the alternative message thread sequence, from the message queue to be executed as a second message to be executed, and obtaining a second message queue to be executed; and generating a second message sequence to be executed based on the submission time and the priority corresponding to the second message sequence to be executed. Therefore, the message with more resource occupied by the message can be selected. And finally, based on the auxiliary message thread in the message thread pool, sequentially executing scheduling operation on the second to-be-executed message in the second to-be-executed message sequence. Therefore, the scheduling of the message occupying more resources is completed. Therefore, the messages arranged behind the messages with more resources occupied by some messages can be operated in time, and the message scheduling efficiency is improved.
As can be seen from fig. 3, compared with the description of some embodiments corresponding to fig. 2, the process 300 of the message scheduling method in some embodiments corresponding to fig. 3 facilitates to run messages arranged after some messages occupying more resources in time, and improves the efficiency of message scheduling.
With further reference to fig. 4, as an implementation of the methods shown in the above-mentioned figures, the present disclosure provides some embodiments of a message scheduling apparatus, which correspond to those of the method embodiments described above in fig. 2, and which may be applied in various electronic devices.
As shown in fig. 4, the message scheduling apparatus 400 of some embodiments includes: an acquisition unit 401, a selection unit 402 and a scheduling unit 403. The obtaining unit 401 is configured to, in response to receiving a message reading instruction, obtain a message queue corresponding to the message reading instruction, where messages in the message queue include a message identifier and a development environment identifier corresponding to the message identifier; the selecting unit 402 is configured to select, according to each development environment identifier included in the message queue, a message corresponding to a current development environment from the message queue as a message to be executed, and obtain a message queue to be executed; the scheduling unit 403 is configured to perform a message scheduling operation based on the message queue to be executed.
It will be understood that the elements described in the apparatus 400 correspond to various steps in the method described with reference to fig. 2. Thus, the operations, features and resulting advantages described above with respect to the method are also applicable to the apparatus 400 and the units included therein, and will not be described herein again.
Referring now to FIG. 5, a block diagram of an electronic device (e.g., computing device 101 of FIG. 1) 500 suitable for use in implementing some embodiments of the present disclosure is shown. The electronic device shown in fig. 5 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
As shown in fig. 5, electronic device 500 may include a processing means (e.g., central processing unit, graphics processor, etc.) 501 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM) 502 or a program loaded from a storage means 508 into a Random Access Memory (RAM) 503. In the RAM 503, various programs and data necessary for the operation of the electronic apparatus 500 are also stored. The processing device 501, the ROM502, and the RAM 503 are connected to each other through a bus 504. An input/output (I/O) interface 505 is also connected to bus 504.
Generally, the following devices may be connected to the I/O interface 505: input devices 506 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; output devices 507 including, for example, a Liquid Crystal Display (LCD), speakers, vibrators, and the like; storage devices 508 including, for example, magnetic tape, hard disk, etc.; and a communication device 509. The communication means 509 may allow the electronic device 500 to communicate with other devices wirelessly or by wire to exchange data. While fig. 5 illustrates an electronic device 500 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may alternatively be implemented or provided. Each block shown in fig. 5 may represent one device or may represent multiple devices as desired.
In particular, according to some embodiments of the present disclosure, the processes described above with reference to the flow diagrams may be implemented as computer software programs. For example, some embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated in the flow chart. In some such embodiments, the computer program may be downloaded and installed from a network via the communication means 509, or installed from the storage means 508, or installed from the ROM 502. The computer program, when executed by the processing device 501, performs the above-described functions defined in the methods of some embodiments of the present disclosure.
It should be noted that the computer readable medium described above in some embodiments of the present disclosure may be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In some embodiments of the disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In some embodiments of the present disclosure, however, a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
In some embodiments, the clients, servers may communicate using any currently known or future developed network Protocol, such as HTTP (HyperText Transfer Protocol), and may interconnect with any form or medium of digital data communication (e.g., a communications network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network.
The computer readable medium may be embodied in the apparatus; or may exist separately without being assembled into the electronic device. The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: responding to a received message reading instruction, and acquiring a message queue corresponding to the message reading instruction, wherein the message in the message queue comprises a message identifier and a development environment identifier corresponding to the message identifier; selecting a message corresponding to the current development environment from the message queue as a message to be executed according to each development environment identifier included in the message queue to obtain a message queue to be executed; and executing message scheduling operation based on the message queue to be executed.
Computer program code for carrying out operations for embodiments of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in some embodiments of the present disclosure may be implemented by software, and may also be implemented by hardware. The described units may also be provided in a processor, and may be described as: a processor includes an acquisition unit, a selection unit, and a scheduling unit. For example, the selection unit may be further described as "a unit that selects, according to the identifiers of the development environments included in the message queue, a message corresponding to the current development environment from the message queue as a message to be executed, and obtains a message queue to be executed" according to the identifiers of the development environments included in the message queue.
The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), systems on a chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention in the embodiments of the present disclosure is not limited to the specific combination of the above-mentioned features, but also encompasses other embodiments in which any combination of the above-mentioned features or their equivalents is made without departing from the inventive concept as defined above. For example, the above features and (but not limited to) technical features with similar functions disclosed in the embodiments of the present disclosure are mutually replaced to form the technical solution.