1 package org.apache.beehive.controls.api.bean; 2 /* 3 * Copyright 2004 The Apache Software Foundation. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 * $Header:$ 18 */ 19 20 /** 21 * Specifies threading policy for control implementations. The constants 22 * of this enumerated type describe the threading policies that apply 23 * during execution of controls. They are used in conjunction with the 24 * {@link Threading} annotation type to specify the responsibilities of 25 * the runtime infrastructure and control implementation with respect to 26 * threading. 27 */ 28 public enum ThreadingPolicy 29 { 30 /** 31 * When a control implementation is declared as SINGLE_THREADED, the 32 * controls infrastructure ensures that only a single thread will be 33 * executing in a particular instance of that control at any time. 34 * This is the default policy if no {@link Threading} annotation is 35 * specified. 36 */ 37 SINGLE_THREADED, 38 /** 39 * When a control implementation is declared as MULTI_THREADED, the 40 * controls infrastructure permits multiple threads to concurrently 41 * execute in instances of that control. It is then the responsibility 42 * of the implementation to ensure internal thread-safety using 43 * standard Java concurrency mechanisms. This policy may yield higher 44 * performance, at the cost of additional work on the implementor's part. 45 */ 46 MULTI_THREADED 47 } 48